位置:首页 > 小程序 >

小程序登录流程分析及实例代码分享

字号+ 作者:micloud 来源:www.seoalphas.com 2019-03-21 20:39 浏览量:3626

小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。

登录流程时序

api-login.jpg

如上图所示,小程序用户登陆的一个完整流程。

1、调用wx.login()获取临时登录凭证code ,并回传到开发者服务器。

    假设我们设定的登陆场景是用户打开小程序即检测是否登陆,未登录跳转到登陆授权界面进行登陆操作。具体如何检测可以通过微信缓存数据进行判断,当用户登陆成功后设定一个登陆状态缓存,再次打开后如果有该状态缓存证明已登陆过,否则跳转到登陆引导界面。

    wx.login()目的是为了获取临时登陆凭证,通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key)等。用户数据的加解密通讯需要依赖会话密钥完成。

{errMsg: "login:ok", code: "061yrVF92UnjJK0WOQF92TRIF92yrVFn"}

2、调用code2Session接口,换取用户唯一标识 OpenID 和 会话密钥 session_key。

    登录凭证校验,本接口应在服务器端调用完成。通过wx.login()接口获得临时登录凭证code后传到开发者服务器调用此接口完成登录流程。

请求地址

GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code


属性 类型 默认值 必填 说明
appid string
小程序 appId
secret string
小程序 appSecret
js_code string
登录时获取的 code
grant_type string
授权类型,此处只需填写 authorization_code

返回值

Object对象类型,返回的 JSON 数据包


属性 类型 说明
openid string 用户唯一标识
session_key string 会话密钥
unionid string 用户在开放平台的唯一标识符,在满足 UnionID 下发条件的情况下会返回,详见 UnionID 机制说明
errcode number 错误码
errmsg string 错误信息

这一步获得的重要数据信息就是openid和session_key,通过他们两个就可以获取用户昵称、头像等重要信息。


errcode的合法值

说明
-1 系统繁忙,此时请开发者稍候再试
0 请求成功
40029 code 无效
45011 频率限制,每个用户每分钟100次


之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。




1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • wx.canIUse(String)-判断小程序的API,回调,参数,组件等是否在当前版本可用

    wx.canIUse(String)-判断小程序的API,回调,参数,组件等是否在当前版本可用

    浏览次数:18465

  • 小程序view内容不换行

    小程序view内容不换行

    浏览次数:11184

  • 小程序不存在页面处理 即404页面

    小程序不存在页面处理 即404页面

    浏览次数:8191

  • 小程序获取用户手机号操作代码示例

    小程序获取用户手机号操作代码示例

    浏览次数:6270

网友点评
评论区域