Menu

4.1. 小程序登录详解

小程序登录

这一节我们来详细讲解小程序的登录流程。

流程分析

先来看一下微信提供的时序图:

file

大概看一下流程,很容易想到 OAuth 2.0 的授权码模式,只是稍有区别,结合 LaraBBS 来分析一下流程:

  1. 小程序调用 wx.login() 接口获取临时登录凭证(code),这一步用户是无感知的,无需用户授权;
  2. 小程序提交 code 到 LaraBBS 服务器;
  3. LaraBBS 服务器通过 appidappsecretcode 请求微信接口,换取用户的 session_keyopenid
  4. LaraBBS 服务器根据 openid 查找到对应的用户,存入 session_key,然后为该用户生成 access_token (JWT)返回给小程序。
  5. 有了 access_token 小程序就可以调用 发布话题发布回复修改个人信息 等需要身份认证的接口了。

本文章首发在 Laravel China 社区

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
讨论数量: 13

Jason_Lai
注意
0 个点赞 | 0 个回复 | 分享 | 课程版本 5.5
asdd1a
larabbs 接口中使用 EasyWeChat 出现 500 错误,怎么解决?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
JeffLi
请求 weapp/authorizations 接口 JWT 报错了?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
tont
yarn add promise-polyfill 出错怎么办?
0 个点赞 | 21 个回复 | 问答 | 课程版本 5.5
ZHEN603
tinker 里执行报错?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
xzzzz
使用 EasyWeChat Laravel 5 的拓展包: overtrue/Laravel-wechat 报错?
1 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
Hesunfly
小程序登陆报错
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
stefen
小程序微信登录问题
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
xuelong
swap 跑满了
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.5
taowendi
tinker 报错
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
caojianx
我的 code 没有获取成功,undefined?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
刻意练习,每日精进。
14
点赞
6189
浏览
13
讨论