第140篇:微信小程序的登录流程

程序,登录,流程 · 浏览次数 : 207

小编点评

**微信小程序登录流程** **前端部分** * 获取用户在多个小程序中的唯一标识符(UnionId)。 * 通过 OpenID 识别用户。 * 生成一个 5 分钟有效期的小程序登录凭证(code)。 **服务器端** 1. 接收用户在前端传递的 code。 2. 使用 code 获取用户在微信开放平台上的 OpenID 和 session_key。 3. 加密用户数据并将其存储在服务器端。 4. 返回给前端的信息,包括用户在小程序中的 OpenID、unionid 和 session_key。 **关键参数** * **code:**微信登录凭证。 * **openId:**微信开放平台用户的 OpenID。 * **unionId:**微信开放平台用户的 unionid。 * **sessionKey:**会话密钥,用于加密用户数据。 **注意** * 在开发小程序时,不能使用 OpenID 进行用户的唯一性判断。 * 用户在多个小程序中登录时分配的 UnionId 相同。

正文

好家伙,补补补

 

顶不住了,跑不掉了,这部分的知识还是要补上

 

来看看微信小程序登录的完整流程

 

最左边的一列就是前端负责的部分了

几个关键的参数:

code:一个用户登录凭证,就是一个临时的token

Appidappid 是微信账号的唯一标识,这个是固定不变的;如果了解微信公众号开发的就需要注意一下,小程序的appid 和 公众号的appid 是不一致的

 

OpenID:为了识别用户,每个用户针对每个公众号或小程序等应用会产生一个安全的OpenID,

公众号或应用可将此ID进行存储,便于用户下次登录时辨识其身份,或将其与用户在第三方应用中的原有账号进行绑定

同一个用户在不同的小程序中拥有不同的openid。因此,在开发小程序时,不能使用openid来进行用户的唯一性判断。


UnionId:UnionId也是用户的标识符,但它与OpenID不同的是,同一个微信用户,

登录同一个开发主体下的多个小程序或公众号的时候,分配的UnionId是一样的。

 

session_key:涉及数据安全的一个秘钥

 

我们去看一下几个关键的Api

 

1.wx.login()

功能描述

调用接口获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户在当前小程序的唯一标识(openid)、微信开放平台帐号下的唯一标识(unionid,若当前小程序已绑定到微信开放平台帐号)及本次登录的会话密钥(session_key)等。用户数据的加解密通讯需要依赖会话密钥完成。

参数:

 这里来看看这个code,有效期五分钟,用code换取openid,

这个code就是个临时token,要带着这个东西发请求去后端拿东西

 

示例代码:

wx.login({
  success (res) {
    if (res.code) {
      //发起网络请求
      wx.request({
        url: 'https://example.com/onLogin',
        data: {
          code: res.code
        }
      })
    } else {
      console.log('登录失败!' + res.errMsg)
    }
  }
})

 

2.wx.request()

功能描述

发起 HTTPS 网络请求。使用前请注意阅读相关说明

 

示例代码:

wx.request({
  url: 'example.php', //仅为示例,并非真实的接口地址
  data: {
    x: '',
    y: ''
  },
  header: {
    'content-type': 'application/json' // 默认值
  },
  success (res) {
    console.log(res.data)
  }
})

 

与第140篇:微信小程序的登录流程相似的内容:

第140篇:微信小程序的登录流程

好家伙,补补补 顶不住了,跑不掉了,这部分的知识还是要补上 来看看微信小程序登录的完整流程 最左边的一列就是前端负责的部分了 几个关键的参数: code:一个用户登录凭证,就是一个临时的token Appid:appid 是微信账号的唯一标识,这个是固定不变的;如果了解微信公众号开发的就需要注意一下

云图说丨Astro Canvas一站式数据可视化开发,分钟级构建业务大屏

摘要:Astro大屏应用是Astro轻应用提供的可视化页面构建服务,提供了丰富的可视化组件、灵活的数据接入和多种方式页面构建能力,支持多屏适配,帮助开发者快速构建和发布专业水准的实时可视化应用。 本文分享自华为云社区《【云图说】第271期 Astro Canvas一站式数据可视化开发,分钟级构建业务

地统计学的基本概念及公式详解

本文对插值、平稳假设、变异函数、克里格等常用的地学计算概念加以介绍,并对相关公式进行推导~

第一百零五篇:变量的原始值和引用值

好家伙,JS基础接着学, 本篇内容为《JS高级程序设计》第四章学习笔记 1.原始值和引用值 ECMAScript变量可以包含两种不同类型的数据:原始值和引用值。原始值(primitive value)就是最简单的数据,引用值(reference value)则是由多个值构成的对象。 在把一个值赋给变

第一百零六篇:变量的不同声明(var,let和const的不同)

JS关于变量的声明,变量提升,暂时性死区

第一百零七篇:基本数据类型(undefined,null,boolean类型)

好家伙, 本篇内容为《JS高级程序设计》第三章学习笔记 1.数据类型 ECMAScript有6种简单数据类型(称为原始类型): Undefined, Null, Boolean, Number, String和Symbol。 Symbol (符号)是ECMAScript6新增的。还有一种复杂数据类型

第一百零八篇:最常用的基本数据类型(Number类型)

最常用的基本数据类型(Number类型)

第一百一十篇:内存泄漏和垃圾回收(JS)

好家伙,本篇内容为《JS高级程序设计》第四章的学习笔记 1.内存泄露 1.1.什么是内存泄漏? 内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。 内存泄漏缺陷具有隐蔽性、积累性的特征,比其

第一百一十一篇:基本引用类型Date

好家伙,本篇为《JS高级程序设计》第五章的学习笔记 1.基本引用类型 引用值(或者对象)是某个特定引用类型的实例,在ECMAScript中,引用类型是把数据和功能组织到一起的结构,(像极了“类”) 经常被人错误的称作“类”。 虽然从技术上讲JavaScript是一门面向对象语言,但是ECMAScri

第一百一十二篇: JS数组Array(一)数组基本用法

好家伙, 1.数组 Array应该就是ECMAScript中最常用的类型了。ECMAScript数组跟其他编程语言的数组有很大区别。 跟其他语言中的数组一样,ECMAScript 数组也是一组有序的数据, 但跟其他语言不同的是,数组中每个槽位可以存储任意类型的数据。 这意味着可以创建一个数组,它的第