ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[success] # 小程序登录 ![](https://img.kancloud.cn/11/a6/11a6c39ee2a44d68fccde34b168a03f7_712x656.png) >[danger] ##### 步骤 1. 验证本地storage 中是否存在用户信息和token。 2. 存在请求后台服务器验证token 是否过期 3. 如果`存在且过期` 或 `不存在`需要像 微信的`wx.login` 获取微信标识的`code` 4. `code` 给到后台,后台和微信服务器置换需要的信息,后台再将登录 `token` 用户信息返回 5. 前端更新`storage ` 中的token 和 用户信息 * getCode封装 ~~~js export function getCode() { return new Promise((resolve, reject) => { wx.login({ success: (res) => { resolve(res.code) } }) }) } ~~~ ~~~js import { getCode } from "../../service/login"; import {request} from '../../serves/index' // pages/12_learn_login/index.js Page({ // onLoad登录的流程 async onLoad() { // 1.获取token, 判断token是否有值 const token = wx.getStorageSync('token') || "" // 2.判断token是否过期 const res = await request.post({ url: "/auth", header: { token: token } }) // console.log(res); // 2.如果token有值 if (token && res.message === "已登录") { console.log("请求其他的数据"); } else { this.handleLogin() } }, async handleLogin() { // 1.获取code const code = await getCode() // 2.使用code换取token const res = await hyLoginReqInstance.post({ url: "/login", data: { code } }) // 3.保存token wx.setStorageSync('token', res.token) } // handleLogin() { // // 1.获取code // wx.login({ // success: (res) => { // const code = res.code // // 2.将这个code发送自己的服务器(后端) // wx.request({ // url: "http://123.207.32.32:3000/login", // data: { // code // }, // method: "post", // success: (res) => { // const token = res.data.token // wx.setStorageSync('token', token) // } // }) // } // }) // } }) ~~~