微信小程序登录流程

文章目录

  • [1. 用户触发登录操作](#1. 用户触发登录操作)
  • [2. 获取临时登录凭证](#2. 获取临时登录凭证)
  • [3. 发送登录凭证到服务器](#3. 发送登录凭证到服务器)
  • [4. 后端使用 code 获取 session_key 和 openid](#4. 后端使用 code 获取 session_key 和 openid)
  • [5. 后端保存 session_key 和 openid 返回token](#5. 后端保存 session_key 和 openid 返回token)
  • [6. 前端保存登录态](#6. 前端保存登录态)

1. 用户触发登录操作

用户在小程序内部点击登录按钮或进行需要登录权限的操作,触发登录流程。

2. 获取临时登录凭证

当用户点击登录按钮后,小程序调用 wx.login() 获取 code

js 复制代码
// 小程序页面中的登录按钮点击事件处理函数  
login: function() {  
  wx.login({  
    success: function(res) {  
      if (res.code) {  
		console.log(res.code); // 获取到code
      } else {  
        console.log('登录失败!' + res.errMsg);  
      }  
    }  
  });  
}

3. 发送登录凭证到服务器

将获取到的code发送至开发者的后台服务器。这个步骤通常是通过HTTP请求完成的,可能还包含其他必要的参数,如小程序的AppID等。

4. 后端使用 code 获取 session_key 和 openid

后端服务器接收到 code 后,使用自己的 appidappsecret,结合 code,请求微信服务器换取 session_key(本次登录的会话密钥) 和 openid

5. 后端保存 session_key 和 openid 返回token

后端服务器保存 session_key 和 openid,并可以生成自定义的登录态 token 给小程序

6. 前端保存登录态

前端接收到登录态 token后,保存到本地,以便后续的请求中携带(需要携带token进行身份验证)。


js 复制代码
// 小程序页面中的登录按钮点击事件处理函数  
login: function() {  
  wx.login({  
    success: function(res) {  
      if (res.code) {  
        // 发送 res.code 到后台换取 openId, sessionKey, unionId  
        wx.request({  
          url: 'https://xxxxxx/api/login', // 你的服务器地址  
          data: {  
            code: res.code,
            AppID:'xxxxxxxxx'  
          },  
          method: 'POST',  
          success: function(response) {  
          	// 服务器接收 code 并请求微信接口获取 session_key 和 openid,返回登录态 token 给小程序
            // 登录成功,保存登录态 token 到 storage,并在后续的请求中携带这个token,以便服务器验证用户的身份。
            wx.setStorageSync('token', response.data.token);  
            // 跳转到其他页面或执行其他操作  
          },  
          fail: function(error) {  
            // 登录失败处理  
            console.error('Login failed:', error);  
          }  
        });  
      } else {  
        console.log('登录失败!' + res.errMsg);  
      }  
    }  
  });  
}
相关推荐
虾..2 小时前
Linux 进程池小程序
linux·c++·小程序
Coder_Boy_2 小时前
【人工智能应用技术】-基础实战-小程序应用(基于springAI+百度语音技术)智能语音控制
人工智能·小程序
计算机毕设指导63 小时前
基于微信小程序的垃圾分类信息系统【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·maven
kaka-3334 小时前
微信小程序中使用 xlsx(xlsx.mini.min.js)实现 Excel 导入导出功能
javascript·微信小程序·excel
Coder_Boy_5 小时前
【人工智能应用技术】-基础实战-小程序应用(基于springAI+百度语音技术)智能语音控制-单片机交互
人工智能·单片机·小程序
Coder_Boy_7 小时前
【人工智能应用技术】-基础实战-小程序应用(基于springAI+百度语音技术)智能语音开关
人工智能·百度·小程序
说私域1 天前
基于开源AI智能名片链动2+1模式S2B2C商城小程序的社群初期运营策略研究
人工智能·小程序
计算机毕设指导61 天前
基于微信小程序的校园物品租赁与二手交易系统【源码文末联系】
spring boot·mysql·微信小程序·小程序·tomcat·maven·intellij-idea
科技小金龙1 天前
小程序/APP接入分账系统:4大核心注意事项,避开合规与技术坑
大数据·人工智能·小程序
说私域1 天前
开源AI智能名片链动2+1模式商城小程序的“展现”策略研究
人工智能·小程序