微信小程序需要用户授权才能获取用户的信息,包括头像、昵称等。同时也需要判断用户的登录是否过期,以便及时更新用户信息。本文将为大家详细讲解微信小程序用户授权,以及判断登录是否过期的方法,内容分为以下部分:
- 用户授权的流程和方法
- 判断登录是否过期的方法
- 示例说明
用户授权的流程和方法
用户授权的流程如下:
- 在小程序中,使用
button
组件获取用户授权 - 用户点击授权按钮,弹出授权确认框
- 用户确认授权后,可以获取到用户信息
用户授权的方法如下:
- 在
button
组件上加上open-type="getUserInfo"
属性 - 通过
wx.getUserInfo()
方法获取用户信息
示例代码如下:
<button open-type="getUserInfo" bindgetuserinfo="onGetUserInfo">点击授权</button>
Page({
onGetUserInfo: function(e) {
console.log(e.detail.userInfo)
}
})
判断登录是否过期的方法
微信小程序的登录过期时间默认为30天,为了保证小程序始终获取到最新的用户信息,我们需要判断登录状态是否过期。判断登录是否过期的方法如下:
- 使用
wx.checkSession()
检查登录态是否过期 - 如果检查结果为过期,则需要重新登录
- 如果检查结果为未过期,则可直接获取用户信息
示例代码如下:
wx.checkSession({
success () {
// 登录态未过期
wx.getUserInfo({
success (res) {
console.log(res.userInfo)
}
})
},
fail () {
// 登录态已过期,需要重新登录
wx.login({
success (res) {
if (res.code) {
// 获取code成功,通过code换取openid
wx.request({
url: 'https://yourserver.com/login',
data: {
code: res.code
},
success (res) {
console.log(res.data)
// 保存openid和session_key到本地
}
})
} else {
console.log('登录失败!' + res.errMsg)
}
}
})
}
})
示例说明
假设我们需要在小程序中显示用户头像和昵称,授权和判断登录状态的完整流程如下:
- 在首页中添加授权按钮,用户点击授权按钮后可以获取用户信息
<button open-type="getUserInfo" bindgetuserinfo="onGetUserInfo">点击授权</button>
Page({
onGetUserInfo: function(e) {
wx.setStorageSync('userInfo', e.detail.userInfo)
this.setData({
userInfo: e.detail.userInfo
})
}
})
- 在
onLoad
生命周期中判断登录状态是否过期,如果登录状态未过期则直接获取用户信息,如果登录状态过期则需要重新登录
onLoad: function() {
let userInfo = wx.getStorageSync('userInfo')
if (userInfo) {
this.setData({
userInfo: userInfo
})
}
wx.checkSession({
success () {
// 登录态未过期
wx.getUserInfo({
success (res) {
console.log(res.userInfo)
wx.setStorageSync('userInfo', res.userInfo) // 保存用户信息到本地
that.setData({
userInfo: res.userInfo
})
}
})
},
fail () {
// 登录态已过期,需要重新登录
wx.login({
success (res) {
if (res.code) {
// 获取code成功,通过code换取openid
wx.request({
url: 'https://yourserver.com/login',
data: {
code: res.code
},
success (res) {
console.log(res.data)
wx.setStorageSync('openid', res.data.openid) // 保存openid到本地
}
})
} else {
console.log('登录失败!' + res.errMsg)
}
}
})
}
})
}
以上两个步骤构成了完整的微信小程序用户授权和判断登录状态的流程。在这个流程中,我们记录用户信息和登录态信息到本地,以便下次访问时直接获取,避免重复授权和登录,同时也保证了用户信息获取的实时性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:微信小程序用户授权,以及判断登录是否过期的方法 - Python技术站