|
@@ -4,15 +4,15 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { getStorage, setStorage, removeStorage, storageKey, getOauthUrl, jumpUrl } from '../utils/help';
|
|
|
+import { getStorage, setStorage, removeStorage, storageKey, getOauthUrl, jumpUrl, OSDetect } from '../utils/help';
|
|
|
import { postRequest } from '../http';
|
|
|
|
|
|
export default {
|
|
|
name: 'buttonLogin',
|
|
|
computed: {
|
|
|
userInfo() {
|
|
|
- return getStorage(storageKey.userInfo);
|
|
|
- }
|
|
|
+ return getStorage(storageKey.userInfo);
|
|
|
+ }
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -29,52 +29,35 @@ export default {
|
|
|
this.$emit('success', this.userInfo)
|
|
|
} else {
|
|
|
// 未登录
|
|
|
- let isiOS = !!window.navigator.userAgent.match(/\(i\[^;]+;( U;)? CPU.+Mac OS X/)
|
|
|
- if (isiOS) {
|
|
|
- this.twitterIosAuth()
|
|
|
- } else {
|
|
|
- this.twitterAndroidAuth()
|
|
|
- }
|
|
|
-
|
|
|
+ this.twitterAuth()
|
|
|
}
|
|
|
},
|
|
|
- async twitterIosAuth() {
|
|
|
- let win = window.open();
|
|
|
- win.opener = null;
|
|
|
- postRequest(`/denet/user/twitterRequestToken`, {
|
|
|
- params: {
|
|
|
- oauthCallback: `${jumpUrl}authlogin`,
|
|
|
- },
|
|
|
- }).then(({ code, data }) => {
|
|
|
- if (code == 0) {
|
|
|
- win.location.href = getOauthUrl(data.authToken);
|
|
|
- // timer
|
|
|
- this.timer = setInterval(() => {
|
|
|
- if (win && win.closed) {
|
|
|
- clearInterval(this.timer);
|
|
|
- this.twitterLogin(data);
|
|
|
- }
|
|
|
- }, 500);
|
|
|
- } else {
|
|
|
- this.$emit('error')
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- async twitterAndroidAuth() {
|
|
|
+ async twitterAuth() {
|
|
|
+ let win
|
|
|
+ if (OSDetect() === 'ios') {
|
|
|
+ win = window.open();
|
|
|
+ win.opener = null;
|
|
|
+ }
|
|
|
+
|
|
|
postRequest(`/denet/user/twitterRequestToken`, {
|
|
|
- params: {
|
|
|
- oauthCallback: `${jumpUrl}authlogin`,
|
|
|
- },
|
|
|
- }).then(({ code, data }) => {
|
|
|
+ params: {
|
|
|
+ oauthCallback: `${jumpUrl}authlogin`,
|
|
|
+ },
|
|
|
+ }).then(({ code, data }) => {
|
|
|
if (code == 0) {
|
|
|
- let win = window.open(getOauthUrl(data.authToken));
|
|
|
+ if (OSDetect() === 'ios') {
|
|
|
+ win.location.href = getOauthUrl(data.authToken);
|
|
|
+ } else {
|
|
|
+ win = window.open(getOauthUrl(data.authToken));
|
|
|
+ }
|
|
|
+
|
|
|
// timer
|
|
|
this.timer = setInterval(() => {
|
|
|
- if (win && win.closed) {
|
|
|
- clearInterval(this.timer);
|
|
|
- this.twitterLogin(data);
|
|
|
- }
|
|
|
- }, 500);
|
|
|
+ if (win && win.closed) {
|
|
|
+ clearInterval(this.timer);
|
|
|
+ this.twitterLogin(data);
|
|
|
+ }
|
|
|
+ }, 500);
|
|
|
} else {
|
|
|
this.$emit('error')
|
|
|
}
|
|
@@ -83,24 +66,24 @@ export default {
|
|
|
twitterLogin(authData) {
|
|
|
let verifier = getStorage(storageKey.verifier);
|
|
|
if (verifier) {
|
|
|
- postRequest(`/denet/user/twitterLogin`, {
|
|
|
- params: {
|
|
|
- consumerKey: authData.consumerKey,
|
|
|
- oauthToken: authData.authToken,
|
|
|
- oauthVerifier: verifier,
|
|
|
- },
|
|
|
- }).then(({ code, data }) => {
|
|
|
- if (code == 0) {
|
|
|
- setStorage(storageKey.userInfo, data);
|
|
|
- removeStorage(storageKey.verifier);
|
|
|
+ postRequest(`/denet/user/twitterLogin`, {
|
|
|
+ params: {
|
|
|
+ consumerKey: authData.consumerKey,
|
|
|
+ oauthToken: authData.authToken,
|
|
|
+ oauthVerifier: verifier,
|
|
|
+ },
|
|
|
+ }).then(({ code, data }) => {
|
|
|
+ if (code == 0) {
|
|
|
+ setStorage(storageKey.userInfo, data);
|
|
|
+ removeStorage(storageKey.verifier);
|
|
|
this.$emit('success', data)
|
|
|
- } else {
|
|
|
+ } else {
|
|
|
this.$emit('error')
|
|
|
- }
|
|
|
- });
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
this.$emit('error')
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|