微信小程序官方登录方式修改,,,,要求通过button点击登录,,,,和各人分享一下解决方案。。

原先的登录逻辑是注册一个全局login要领,,,, login要领中首先挪用wx.login静默登录,,,,获取暂时登录凭证code,,,,在开发者服务器后台挪用 api,,,,使用 code 换取 openid 和 session_key 。。然后挪用wx.getUserInfo获取用户信息。。
现在的实现逻辑是写一个button中转页,,,,进入小程序wx.getUserInfo获取失败后跳转到button中转页,,,,点击button挪用bindgetuserinfo要领,该要领返回的detail数据与wx.getUserInfo要领返回的信息一致,,,,此时也可以获取到用户信息。;;;氐骼殖珊體x.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,
// });
}
就酱愉快的重构竣事~
KESION pp电子软件
KESION pp电子软件是海内领先的在线教育软件及私域社交电商软件服务提供商,,,,恒久专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。。
公司焦点产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化自力安排品牌网校和在线教育咨询等。。KESION 一直通过手艺立异,,,,提供产品和服务,,,,助力企业向数字化转型,,,,通过科技驱动商业刷新,,,,让商业变得更智慧!
通????⒄呦M⒊鋈サ男〕绦虮欢次翻开的时间能够获取到一些信息,,,,例如群的标识。。...
点击右上角按钮,,,,会弹出菜单,,,,菜单中的“转发”选项默认不展示。。通过 wx.showShareMenu 和 wx.hideShareMenu 可动态显示、隐藏这个选项。。...