前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【黄啊码】微信小程序登录流程+介绍wx.login和auth.code2Session

【黄啊码】微信小程序登录流程+介绍wx.login和auth.code2Session

原创
作者头像
黄啊码
发布2022-06-10 10:53:59
1.7K0
发布2022-06-10 10:53:59
举报
文章被收录于专栏:黄啊码【CSDN同名】

信小程序登录流程+介绍wx.login和auth.code2Session

几个核心API和核心字段

wx.login() 调用接口获取登录凭证(code)

code2Session 登录凭证校验,为了获取会话秘钥session_key

wx.checkSession() 检查登录态是否过期

wx.getSetting() 获取用户的当前设置

wx.getUserInfo 获取用户信息,获取之后需要解密数据

session_key 会话秘钥,是通过调用接口获取登录凭证获取的,是有时效性的

微信小程序登录流程

介绍wx.login和auth.code2Session

wx.login:微信小程序的登录方法,获取临时登录凭证code,并回传到开发者服务器。

auth.code2Session:换取 用户唯一标识 OpenID 和 会话密钥 session_key信息进行登录凭证校验。

登录流程解析

首次登录:

1、首先需要调用小程序api接口 wx.login() 获取 临时登录凭证code ,这个code是有过期时间的。

2、将这个code回传到开发者服务器(就是请求开发者服务器的登录接口,通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key)等)。

3、拿到开发者服务器传回来的会话密钥(session_key)之后,前端要保存wx.setStorageSync(‘sessionKey’, ‘value’)

再次登录的时候,就要判断存储的session_key是否过期了:

1、获取缓存中的session_key,wx.getStorageSync(‘sessionKey’)

2、如果缓存中存在session_key,那么调用小程序api接口wx.checkSession()来判断登录态是否过期,回调成功说明当前 session_key 未过期,回调失败说明 session_key 已过期。登录态过期后前端需要再调用 wx.login()获取新的用户的code,然后再向开发者服务器发起登录请求。

3、一般在项目开发,开发者服务器也会对用户的登录态做过期限制,所以这时在判断完微信服务器中登录态如果没有过期之后还要判断开发者服务器的登录态是否过期。(请求开发者服务器给定的接口进行请求判断就好)。

4、无论是微信服务器过期了还是开发者服务器登录态过期了,都要像首次登录那样开始三步骤。所以注意封装代码。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档