小程序快捷登录以及监听用户登陆状态
先存个档,放假有空就整理
登录页面长这样:
设定考研页为首页,在首页监听用户是否登录
onLoad: function (options) { if(!wx.getUserProfile){ wx.redirectTo({ url: '/pages/login/login', }) } },
在login.wxml页面添加快捷登录按钮(代码已省略样式)
<button bindtap="login" ><text>微信账号快捷登录</text></button>
在login.js页面编写代码:
Page({
data: {
userInfo:'',
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
console.log('进入小程序login页面')
let user=wx.getStorageSync('user')
console.log('进入小程序login页面获取缓存',user)
this.setData({
userInfo: user
})
},
goKY(){
wx.switchTab({
url: '../My/My',//点击【您已登录,进入使用】按钮跳转到【我的】页面
})
},
//授权登录
login(){
wx.login({
success: function (res) {
var code = res.code; //返回code
var appId = 'wx78627abf154018b9';
var secret = '4f3f7d07e1f177a6d920ae7ca68f4779';
wx.request({
url: 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appId + '&secret=' + secret + '&js_code=' + code + '&grant_type=authorization_code',
data: {},
header: {
'content-type': 'json'
},
success: function (res) {
var openid = res.data.openid //返回openid
console.log('openid为' + openid);
}
})
}
})
wx.getUserProfile({
desc: '必须授权登录才能正常使用',
success: res => {
let user=res.userInfo
//把用户信息缓存到本地
wx.setStorageSync('user', user)
console.log('用户信息:',res.userInfo)
this.setData({
userInfo: user
})
wx.switchTab({
url: '/pages/Ky/Ky1/1-1/1-1',//用户登陆后跳转到考研页面
})
console.log('login success1')
},
fail: res => {
console.log('授权失败',res)
}
})
}
})