微信小程序(uniapp)授权登录
1. 开发前准备
2. 前端开发
-
初始化openId和sessionKey
-
“授权”按钮(必须添加open-type=“getUserInfo”)
<button :disabled="btnLoading" :loading="btnLoading" class="wechat-auth-btn" open-type="getUserInfo" @tap="authClickHandle" > <image class="image" :src="wechatLogo"/> </button>
-
点击“授权”按钮拉起授权
getUserProfile_MP() { const _this = this; wx.getUserProfile({ //desc的长度不能超过30个字符 desc: "同意授权查看附近更多商户", success: res => { console.log(res=======>, res) if (res.errMsg === getUserProfile:ok && res.encryptedData) { //获取用户信息 _this.getUserInfo_MP(res); } }, fail: res => { //拒绝授权 console.log(失败, JSON.stringify(res)); _this.btnLoading = false; _this.$mHelper.toast(授权失败); return; } }); }, //小程序获取用户信息 getUserInfo_MP(res) { const _this = this; wx.showLoading({ title: 正在登录...}); _this.$http.post(mpWechatAuth, { wechatUser: res.userInfo, miniName: mpshop, iv: res.iv, ..._this.wechat, unionId: , signature: res.signature }).then(async result => { console.log(授权结果==========>, result); wx.hideLoading(); _this.btnLoading = false; const user = result.data; if (200 === result.code && user.accessToken) { _this.$mHelper.toast(授权登录成功); //重定向到首页(这句话放到后面,就不能跳转了) if (!user.mobile) { //如果之前未绑定过手机号了(也就是手机号为空),进入绑定手机号页码 _this.$mRouter.push({ route: /pages/public/bind-mobile}); } else { //如果之前已经绑定过手机号了(也就是手机号不为空),进入首页 _this.$mRouter.reLaunch({ route: /pages/index/index}); } //把登录数据保存 _this.$mStore.commit(login, user); } }).catch(() => { _this.btnLoading = false; }); }
3. 后端开发
-
根据code获取openId和sessionKey
-
授权操作(其实没什么操作)
public ResponseResult mpAuth(WechatMPAuthBean query) { //TODO 授权在前端已经完成,业务操作 return new ResponseResult(); }
-
WechatBean
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
小程序更换云服务器和域名完全攻略