| @@ -118,8 +118,13 @@ | |||||
| import {getUUID} from '@/utils' | import {getUUID} from '@/utils' | ||||
| const APPID = "wx7135dd84735bc392"; | const APPID = "wx7135dd84735bc392"; | ||||
| // 静默授权:scope=snsapi_base | |||||
| // const WX_AUTH_URL = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + APPID | |||||
| // + '&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=0#wechat_redirect'; | |||||
| // 非静默授权:scope=snsapi_userinfo | |||||
| const WX_AUTH_URL = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + APPID | const WX_AUTH_URL = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + APPID | ||||
| + '&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=0#wechat_redirect'; | |||||
| + '&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=0#wechat_redirect'; | |||||
| export default { | export default { | ||||
| data() { | data() { | ||||
| @@ -144,6 +149,8 @@ | |||||
| codeUrl: "", //验证码 | codeUrl: "", //验证码 | ||||
| isSmsLogin: false, //是否手机验证码 | isSmsLogin: false, //是否手机验证码 | ||||
| computeTime: 0, | computeTime: 0, | ||||
| headimgurl: "", | |||||
| nickname: "", | |||||
| }; | }; | ||||
| }, | }, | ||||
| created() { | created() { | ||||
| @@ -158,10 +165,7 @@ | |||||
| this.showMessage = !this.showMessage | this.showMessage = !this.showMessage | ||||
| }, | }, | ||||
| wxAuth() { | wxAuth() { | ||||
| // let code = this.getUrlParam('code');//获取URL中的code参数 | |||||
| // if (code) return code; | |||||
| // let currentUrl = encodeURIComponent(window.location.href); | |||||
| // window.location.replace(WX_AUTH_URL.replace('REDIRECT_URI', currentUrl)); | |||||
| // 非静默授权:snsapi_userinfo,有弹框弹出需要用户手动点击确认授权。可以获取openId,用户的头像、昵称等 | |||||
| return new Promise((resolve, reject) => { | return new Promise((resolve, reject) => { | ||||
| let openid = this.$cookie.get('openid'); | let openid = this.$cookie.get('openid'); | ||||
| if (openid) { | if (openid) { | ||||
| @@ -170,26 +174,65 @@ | |||||
| } | } | ||||
| let code = this.getUrlParam('code'); | let code = this.getUrlParam('code'); | ||||
| if (!code) {//未经过微信授权 | if (!code) {//未经过微信授权 | ||||
| /** | |||||
| * 获取网页授权登录code | |||||
| * 如果有直接返回,如果没有重定向到腾讯授权页面,腾讯会再次重定向回来并带有code参数 | |||||
| **/ | |||||
| let code = this.getUrlParam('code');//获取URL中的code参数 | |||||
| if (code) return code; | |||||
| let currentUrl = encodeURIComponent(window.location.href); | let currentUrl = encodeURIComponent(window.location.href); | ||||
| window.location.replace(WX_AUTH_URL.replace('REDIRECT_URI', currentUrl)); | window.location.replace(WX_AUTH_URL.replace('REDIRECT_URI', currentUrl)); | ||||
| } else { | } else { | ||||
| this.$cookie.set('appid', APPID); //接口服务端从cookie中读取openid | this.$cookie.set('appid', APPID); //接口服务端从cookie中读取openid | ||||
| this.$http({ | this.$http({ | ||||
| url: this.$http.adornUrl('/wxAuth/codeToOpenid'), | |||||
| url: this.$http.adornUrl('/wxAuth/codeToUserInfo'), | |||||
| method: 'post', | method: 'post', | ||||
| data: this.$http.adornParams({ | data: this.$http.adornParams({ | ||||
| 'code': code | 'code': code | ||||
| }) | }) | ||||
| }).then(res => { | }).then(res => { | ||||
| if (res.code == 200) { | |||||
| console.log("微信授权完成" + res.data); | |||||
| resolve(res.data); | |||||
| if (res.data.code == 200) { | |||||
| console.log("微信授权完成"); | |||||
| this.headimgurl = res.data.headimgurl; | |||||
| this.nickname = res.data.nickname; | |||||
| console.log(this.headimgurl); | |||||
| console.log(this.nickname); | |||||
| } else { | } else { | ||||
| console.log("换取openid失败"); | console.log("换取openid失败"); | ||||
| } | } | ||||
| }); | }); | ||||
| } | } | ||||
| }); | }); | ||||
| // 静默授权:snsapi_base,没有弹窗,只能获取用户的openId。 | |||||
| // return new Promise((resolve, reject) => { | |||||
| // let openid = this.$cookie.get('openid'); | |||||
| // if (openid) { | |||||
| // resolve(openid); | |||||
| // return; | |||||
| // } | |||||
| // let code = this.getUrlParam('code'); | |||||
| // if (!code) {//未经过微信授权 | |||||
| // let currentUrl = encodeURIComponent(window.location.href); | |||||
| // window.location.replace(WX_AUTH_URL.replace('REDIRECT_URI', currentUrl)); | |||||
| // } else { | |||||
| // this.$cookie.set('appid', APPID); //接口服务端从cookie中读取openid | |||||
| // this.$http({ | |||||
| // url: this.$http.adornUrl('/wxAuth/codeToOpenid'), | |||||
| // method: 'post', | |||||
| // data: this.$http.adornParams({ | |||||
| // 'code': code | |||||
| // }) | |||||
| // }).then(res => { | |||||
| // if (res.code == 200) { | |||||
| // console.log("微信授权完成" + res.data); | |||||
| // resolve(res.data); | |||||
| // } else { | |||||
| // console.log("换取openid失败"); | |||||
| // } | |||||
| // }); | |||||
| // } | |||||
| // }); | |||||
| }, | }, | ||||
| getUrlParam(key) {//获取当前页面url中的参数 | getUrlParam(key) {//获取当前页面url中的参数 | ||||
| var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)"); | var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)"); | ||||
| @@ -264,6 +307,8 @@ | |||||
| method: 'post', | method: 'post', | ||||
| data: this.$http.adornParams({ | data: this.$http.adornParams({ | ||||
| 'openId': this.$cookie.get('openid'), | 'openId': this.$cookie.get('openid'), | ||||
| 'headimgurl': this.headimgurl, | |||||
| 'nickname': this.nickname, | |||||
| 'mobile': this.formData.mobile, | 'mobile': this.formData.mobile, | ||||
| 'code': this.formData.smsCode, | 'code': this.formData.smsCode, | ||||
| 'codeTime': this.formData.codeTime | 'codeTime': this.formData.codeTime | ||||