一对一免费咨询:189-6833-3365

微信小程序(procedure)官方登录方式修改,要求通过button点击登录,和大家分享一下我的解决方案。原先的登录逻辑(Logic)是注册一个全局login方法, login方法中首先调用wx。login静默登录,获取(obtain)临时登录凭证code,在开发者服务器后台调 。。
微信小程序(procedure)官方(authority)登录方式修改,要求通过button点击登录,和大家分享一下我的解决方案。宁波微信小程序开发是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。
原先的登录逻辑(Logic)是注册一个全局login方法, login方法中首先调用wx。login静默登录,获取临时登录凭证code,在开发者服务器后台调用 api,使用 code 换取 openid 和 session_key 。然后调用wx。getUserInfo获取用户信息。
现在的实现逻辑(Logic)是写一个button中转页,进入小程序(procedure)wx。宁波小程序开发对于开发者而言,小程序开发门槛相对较低,难度不及APP,能够满足简单的基础应用,适合生活服务类线下商铺以及非刚需低频应用的转换。getUserInfo获取(obtain)失败后跳转到button中转页,点击button调用bindgetuserinfo方法,该方法返回的detail数据与wx。getUserInfo方法返回的信息一致,此时也可以获取到用户信息。回调成功后wx。navigateBack({})回原页面。
下面贴上部分代码片段:
async bindGetUserInfo(event) {const { detail } = event;const isSuccess = detail。宁波微信小程序开发是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。errMsg === 'getUserInfo:ok';if (isSuccess) {this。authSuccess(detail);return;}// 用户拒绝授权// wx。navigateBack({});}async authSuccess(detail) {await this。getToken(detail);wx。navigateBack({});// this。nextHander();}保存用户信息async getToken(detail) {console。log('getToken', detail);const session_key = wx。getStorageSync('session_key');const { encryptedData: encrypted_data, iv } = detail;const that = this;// 保存用户信息到服务器const { data: { user, up_token, token, is_created } } = await this。fetch({url: '/api/artisan/wechat/login',data: {session_key,encrypted_data,iv,},method: 'POST',});wx。setStorageSync('user', user);this。$root。$parent。store。set('up_token', up_token, 30);// 存储用户标识符到本地this。$root。$parent。store。set('token', token, 30);this。$root。$parent。store。set('is_created', is_created, 30);// redux// store。dispatch({// type: 'SET_IS_CREATED',// payload: is_created,// });}
就酱愉快的重构结束~

© 2008-2019 浙江东美 ALL RIGHTS RESERVED. XMLBAIDU

免责申明:部分内容来自互联网,若侵犯了您的权益,请告知我们删除!

浙ICP备19019195号-1
找网站建设公司就上东美!
189-6833-3365
tel+86-189-6833-3365