小程序登录教程

以下为小程序登录分析:
小程序的登录流程:(在App.js中onlunch生命周期中)
1、调用wx.login()获取code
2、调用wx.request发送code到我们的服务器(我们自己的服务器会返回一个登录态的标识,比如token
3、将登录态的标识token进行存储,以便下次使用
4、请求需要登录态标识的接口时,携带token

以下为基本的js代码:
const TOKEN=‘token’
App({
//定义全局变量
globalData: {
url: ‘http://***’,
userInfo: null,//初始化是获取用户信息
token: ‘’,//这是判断用户登录态的令牌,与后台交互的钥匙,登录授权后,由后台发放
//得到后存储在Storage

},
onLaunch: function () {
//为了防止每次用户使用小程序时都登录,一开始应该先去检验token是否存在或者过期
//1、先从缓存中取出token
const token = wx.getStorageInfoSync(TOKEN)
//2、判断token是否存在
if(token && token!==0){
//已经有token,需要验证token是否过期
//验证token是否过期,将验证方法放入一个封装的函数中
this.check_token(token);
console.log(‘执行检验操作’);
}
else{
//没有token,进行登录操作
this.login();
console.log(‘执行登录操作’);
}
},

//检验token的函数
check_token(token){
console.log(‘执行检验操作’);
wx.request({
url: ‘http://***’,
method:‘post’,
header:{
token,
‘content-type’: ‘application/x-www-form-urlencoded’,
},
success:(res)=>{
if (res.data.code == 600){
console.log(‘token有效’);
this.globalData.token=token;
console.log(this.globalData.token);
}
else{
console.log(‘执行登录操作’);
this.login();
}
console.log(res);
},
fail:function(err){
console.log(err)
}
})
},
login(){//自己定义的login()方法
//登录操作
console.log(‘执行登录操作’);
wx.login({
success: (res) => {
//1、获取code
var code = res.code;
var userName = “”;
//2、将code发送给服务器
wx.request({
url: ‘http://***’,
method: ‘post’,
data: {
code: code,
userName: userName
},
header: {
‘content-type’: ‘application/x-www-form-urlencoded’,
},
success: (res) => {
console.log(res)
//1、取出token
const token = res.data.data;
//2、将token保存在globalData中
this.globalData.token = token;
//此时的token已经存储在了globaldata这个对象的token中了,但是对象在用户关闭小程序时会被回收,意味着token也会被回收,这样用户在下次使用这个小程序时还要继续登录,为了解决这个问题,我们应该进行本地保存

//3、进行本地存储
wx.setStorageSync(TOKEN, token)//这个方法时同步的,执行完这个函数之后才能继续执行下面的
}
})
}
})
}
})

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值