微信小程序登录流程

文章目录

  • [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);  
      }  
    }  
  });  
}
相关推荐
不吃辣4902 小时前
vibe coding | 如何做一个AI制图小程序?
人工智能·小程序·ai编程
laboratory agent开发3 小时前
2026小程序服务商推荐:全域私域数字化工具选型深度解析
小程序
小码哥0689 小时前
智慧物业管理系统开发详解:核心功能与源码开发优势
小程序·物业管理·物业系统
汤姆yu9 小时前
基于微信小程序的方言转文字小程序的设计与实现
java·小程序·毕业设计·方言翻译
不吃辣4909 小时前
vibe coding | 如何做一个 AI 闹钟小程序?
人工智能·小程序·ai编程
万岳科技程序员小金10 小时前
在线教育系统源码开发全解析:教育培训APP、小程序及平台搭建完整方案
小程序·在线教育系统源码·教育app开发·教育小程序开发
2501_915921431 天前
appuploader-cli 命令行上传 IPA 到 App Store Connect upload CI 集成
android·ci/cd·小程序·https·uni-app·iphone·webview
梦想的旅途21 天前
企业微信销售自动化:线索分配与超时预警
小程序·自动化·企业微信
单词记忆方法研究1 天前
探索上海背单词小程序品牌:高效学习工具的优化之路
大数据·学习·小程序
码上成长2 天前
小程序请求层怎么封装?
前端·小程序