let code = res.code; // 微信登录接口返回的 code 参数,下面注册接口需要用到
wx.getUserInfo({ //获取用户信息
success: function (res) {
let iv = res.iv; //加密算法的初始向量
let encryptedData = res.encryptedData; //完整用户信息的加密数据
// 下面开始调用注册接口
http.registor({ //微信小程序用户快速注册
code: code,
encryptedData: encryptedData,
iv: iv
}).then(function (res) {
console.log(res);
_this.login();
})
}
})
}
})
},
3.执行登录的login方法,通过登录拿到token
//登陆
login(page){
const _this = this
wx.login({ // 获取登陆凭证 code
success: function (res) {
console.log(res)
//调用登陆接口,传code
http.login({code:res.code,type:2}).then(function (res) {
console.log(res)
res=res.data;
if (res.code != 0) {
// 登录错误
wx.showModal({
title: ‘无法登录’,
content: res.msg,
showCancel: false
})
return;
}
console.log(res)
wx.setStorageSync(‘token’, res.data.token)
wx.setStorageSync(‘uid’, res.data.uid)
_this.onShow()
})
}
})
},
- 登陆成功触发onShow()
onShow: function () {
this.getUserApiInfo();
},
- 获取用户详细信息
//获取用户详情信息
getUserApiInfo() {
console.log(10000)
var that = this;
//后去用户详细信息
http.userDetail({token:wx.getStorageSync(‘token’)}).then(function (res) {
console.log(res);
if (res.data.code == 0) {
// let _data = {}
// _data.apiUserInfoMap = res.data
// that.setData(_data);
that.setData({
apiUserInfoMap:res.data.data
})
}
})
},
- 退出登陆
点击退出按钮
//退出函数
loginOut(){
wx.removeStorageSync(‘token’)
wx.removeStorageSync(‘uid’)
wx.reLaunch({
url: ‘/pages/mylogin/mylogin’
})
},
4.检测登录状态和token是否过期
//检测token是否过期
//只检测登录态(检测微信返回)
async function checkSession(){
return new Promise((resolve, reject) => {
//通过内置方法检测
wx.checkSession({
success() {
return resolve(true)
},
fail() {
return resolve(false)
}
})
})
}
// 总体检测登录状态,包括token和微信登录态 返回 true 或false
//在app.js的onload生命周期通过index.checkHasLogined调用,如果过期
async function checkHasLogined() {
//获取本地存储的token
const token = wx.getStorageSync(‘token’)
//如果没有token,直接返回false
if (!token) {
return false
}
//检测微信登录态
/**
- 调用成功说明当前 session_key 未过期,调用失败说明 session_key 已过期
*/
const loggined = await checkSession()
//如果没有登录态,则移除token,并返回false
if (!loggined) {
wx.removeStorageSync(‘token’)
return false
}
//检测登录token是否有效
const checkTokenRes = await WXAPI.checkToken(token)
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
。**
[外链图片转存中…(img-IBdifqjK-1710928022598)]
[外链图片转存中…(img-p86GkY8s-1710928022599)]
[外链图片转存中…(img-9Z4BqACr-1710928022599)]
[外链图片转存中…(img-cPvfxhmK-1710928022600)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
[外链图片转存中…(img-x3I1QfGi-1710928022600)]