| @@ -118,8 +118,13 @@ | |||
| import {getUUID} from '@/utils' | |||
| 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 | |||
| + '&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 { | |||
| data() { | |||
| @@ -144,6 +149,8 @@ | |||
| codeUrl: "", //验证码 | |||
| isSmsLogin: false, //是否手机验证码 | |||
| computeTime: 0, | |||
| headimgurl: "", | |||
| nickname: "", | |||
| }; | |||
| }, | |||
| created() { | |||
| @@ -158,10 +165,7 @@ | |||
| this.showMessage = !this.showMessage | |||
| }, | |||
| 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) => { | |||
| let openid = this.$cookie.get('openid'); | |||
| if (openid) { | |||
| @@ -170,26 +174,65 @@ | |||
| } | |||
| let code = this.getUrlParam('code'); | |||
| if (!code) {//未经过微信授权 | |||
| /** | |||
| * 获取网页授权登录code | |||
| * 如果有直接返回,如果没有重定向到腾讯授权页面,腾讯会再次重定向回来并带有code参数 | |||
| **/ | |||
| 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)); | |||
| } else { | |||
| this.$cookie.set('appid', APPID); //接口服务端从cookie中读取openid | |||
| this.$http({ | |||
| url: this.$http.adornUrl('/wxAuth/codeToOpenid'), | |||
| url: this.$http.adornUrl('/wxAuth/codeToUserInfo'), | |||
| method: 'post', | |||
| data: this.$http.adornParams({ | |||
| 'code': code | |||
| }) | |||
| }).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 { | |||
| 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中的参数 | |||
| var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)"); | |||
| @@ -264,6 +307,8 @@ | |||
| method: 'post', | |||
| data: this.$http.adornParams({ | |||
| 'openId': this.$cookie.get('openid'), | |||
| 'headimgurl': this.headimgurl, | |||
| 'nickname': this.nickname, | |||
| 'mobile': this.formData.mobile, | |||
| 'code': this.formData.smsCode, | |||
| 'codeTime': this.formData.codeTime | |||