小程序授权登录要使用wx.getUserProfile,获得用户投头像后,做一些页面跳转功能,但是如果需要再次跳转首页的话,小程序就会有回到登录前的状态,这样体验感会很差。要想不用再次登录,也不难,只需要判断userInfo是否还存有信息就可以了。举个例子:
//wxml登录页面,也作为首页
<view class="touxiang">
<block wx:if="{{!hasUserInfo}}">
<image bindtap="login" class="ava"></image>
<view class="text"><text>点击圆圈登录</text></view>
</block>
<block wx:else>
<image class="ava" src="{{userInfo.avatarUrl}}"></image>
<view class="text"><text>{{userInfo.nickName}}</text></view>
<button bindtap="url">跳转页面</button>
</block>
</view>
//wxss
.ava{
width: 100rpx;
height: 100rpx;
border: 1rpx solid black;
border-radius: 50%;
margin-left: 43.5%;
}
.text{
text-align: center;
}
/**
* 页面的初始数据
*/
data: {
userInfo: {},
hasUserInfo: false,
},
/*点击后微信授权登录*/
login: function (e) {
var that = this
// 获取用户的昵称和头像
wx.getUserProfile({
desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
that.setData({
userInfo: res.userInfo,
hasUserInfo: true //用于让页面判断是否登录
})
//这里要把用户信息保存进全局变量
getApp().globalData.userInfo = res.userInfo
}
})
},
url: function () {
wx.navigateTo({
url: '/pages/url/url',
})
},
跳转后的url页面文章来源:https://www.toymoban.com/news/detail-543540.html
<button bindtap="shouye">跳转回首页</button>
//就假设该页面已经过多次不同页面跳转,现从该页面直接跳转回首页登录面,
//则跳转回后首页会成未登录状态
shouye:function(){
wx.navigateTo({
url: '../test/test',
})
},
此时就可以在首页js文件的onShow()做判断,判断全局变量的userInfo是否为空文章来源地址https://www.toymoban.com/news/detail-543540.html
onShow() {
// 如果后台userInfo信息存在,可赋值直接进入登录页面,无需再次登录获取
// 获取用户globalData信息
var n = getApp().globalData.userInfo
// 后台不为‘’,则赋值,然后登录
if (n != '' && n != null) {
this.setData({
userInfo: n,
hasUserInfo: true,
canIUseGetUserProfile: true
})
//为空则意味着之前没有登录,直接登录就行
this.login()
}
},
到了这里,关于微信小程序授权登录,跳转页面后在跳回首页不用再次登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!