E企盈营销工具技术服务商 热线:4006-838-530

微信小程序授权登录,微信小程序用户授权登录button

E企盈直播平台营销卖货系统

捋一下用户登录wx.login、登录态是否过期、用户是否授权问题介绍用到wx.getUserInfo接口,涉及到用户授权。登录还涉及到session_key,登录态是否过期问题。用户授权wx.getUserInfo接口调整说明:在用户未授权过的情况下调用此接口,将不再出现授权弹窗,会直接进入fail回调(详见)。在用户已授权的情况下调用此接口,可成功获取用户信息。为优化用户体验,使用wx.getUserInfo接口直接弹出授权框的开发方式将逐步不再支持。开发者可使用button组件,并将open-type指定为getUserInfo类型,获取用户基本信息。开发者可以使用wx.getSetting获取用户当前的授权状态。部分接口需要获得用户授权同意后才能调用。此类接口调用时:如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;如果用户已授权,可以直接调用接口;如果用户已拒绝授权,则不会出现弹窗,而是直接进入接口fail回调。请开发者兼容用户拒绝授权的场景。登录态过期会话密钥session_key有效性开发者如果遇到因为session_key不正确而校验签名失败或解密失败,请关注下面几个与session_key有关的注意事项。wx.login调用时,用户的session_key可能会被更新而致使旧session_key失效(刷新机制存在最短周期,如果同一个用户短时间内多次调用wx.login,并非每次调用都导致session_key刷新)。开发者应该在明确需要重新登录时才调用wx.login,及时通过auth.code2Session接口更新服务器存储的session_key。微信不会把session_key的有效期告知开发者。我们会根据用户使用小程序的行为对session_key进行续期。用户越频繁使用小程序,session_key有效期越长。开发者在session_key失效时,可以通过重新执行登录流程获取有效的session_key。使用接口可以校验session_key是否有效,从而避免小程序反复执行登录流程。当开发者在实现自定义登录态时,可以考虑以session_key有效期作为自身登录态有效期,也可以实现自定义的时效性策略。注意:session_key和微信派发的code是一一对应的,同一code只能换取一次session_key。每次调用wx.login(),都会下发一个新的code和对应的session_key,为了保证用户体验和登录态的有效性,开发者需要清楚用户需要重新登录时才去调用wx.login()session_key是有时效性的,即便是不调用wx.login,session_key也会过期,过期时间跟用户使用小程序的频率成正相关,但具体的时间长短开发者和用户都是获取不到的解决问题写一个授权登录页面,默认首页就是授权页面,需要登录的时候也跳转这个页面。在授权页面判断不同需要登录的情况。authorization.wxml!–authorization.wxml–viewclass=”container”viewclass=”usermotto”textclass=”user-motto”{{motto}}/text/viewviewclass=’content’view小程序申请获取以下权限/viewtext获得你的公开信息(昵称,头像等)/text/viewviewclass=”userinfo”buttonwx:if=”{{canIUse}}”open-type=”getUserInfo”bindgetuserinfo=”bindGetUserInfo”微信授权登录/buttonviewwx:else请升级微信版本/view/view/viewauthorization.wxss/authorization.wxss/.userinfo{display:flex;flex-direction:column;align-items:center;}.usermotto{margin-top:0rpx;}.content{margin-top:100rpx;margin-bottom:90rpx;}.contenttext{font-size:medium;display:block;color:#9d9d9d;margin-top:40rpx;}authorization.js//authorization.jsconstutil=require(‘../../utils/util.js’)Page({data:{motto:’进行此操作需要进行用户授权’,canIUse:wx.canIUse(‘button.open-type.getUserInfo’)},onLoad:function(){console.log(‘当前页’+getCurrentPages()[getCurrentPages().length-1].route)wx.checkSession({success:function(e){//登录态未过期console.log(“没过期”);//查看是否授权wx.getSetting({success:function(res){if(res.authSetting[‘scope.userInfo’]){//已授权if(wx.getStorageSync(‘sessionId’)){//storage中有‘sessionId’//转到首页wx.redirectTo({url:’../home/home’,})}else{//情况1:storage中没有‘sessionId’,重新登录util.login();}}}})},fail:function(){//情况2:登录态过期了,需重新登录console.log(“过期了”);//查看是否授权wx.getSetting({success:function(res){if(res.authSetting[‘scope.userInfo’]){util.login();}}})},})},//授权弹窗操作情况3:用户未授权,需点击button授权bindGetUserInfo:function(e){if(e.detail.userInfo){//用户按了允许授权按钮//登录操作util.login();}else{//用户按了拒绝按钮wx.showModal({title:’警告’,content:’您点击了拒绝授权,将无法进入小程序,请授权之后再进入~’,showCancel:false,confirmText:’我知道了’,success:function(res){if(res.confirm){console.log(‘用户点击了“我知道了”’)//返回前一页面wx.navigateBack({delta:1})}}})}},})更多

赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 微信小程序授权登录,微信小程序用户授权登录button
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏