小程序联合登录API规划详细说明

后台-系统设置-扩展变量-手机广告位-内容正文顶部

小程序登录架构

总体流程

  一、打开小程序后,要生成一个uuid,首先检测登录状态

  此处属于小程序内部处理逻辑,通过判断access_token及refresh_token是否过期来完成。

  具体请参考《基于Token机制鉴权架构》

  注:每个客户端都要存在一个唯一的uuid,也可以在打开小程序时处理

  二、判断登录状态

  如果已经登录,则不做处理

  如果未登录,则尝试自动登录

  三、自动登录

  1、获取unionId

  首先从缓存中获取unionid,如获取到则进行如下第3步骤。

  未获取到再从数据库中通过uuid获取unionId。

  2、如上步骤未获取到unionId,则需要从微信jscode2session接口获取unionId。

  如返回unionId,则进行如下第3步骤。

  如未返回unionId,则记录sessionKey,返回前端,前端调用wx.getUserInfo拿到加密数据,然后传递给解密api,解密api会解码出unionid并和uuid绑定。解密流程参照如下第4步骤。

  3、如可以获取到unionId,则进行绑定状态的判定

  如已绑定,则登录返回商城token信息,小程序记录token即可。

  如未绑定,缓存中和数据库中要存储对应的授权信息即unionId,返回前端account_not_found,前端需要登录或者注册进行账号的绑定。

  具体请参考如下《自动登录API架构》

  4、将解密后的auth2token记录缓存

  ​校验数据库中是否存在账号绑定信息

  存在:执行登录返回商城令牌token信息。

  不存在:在数据库中将uuid和unionId进行绑定。

  具体参考如下《解密API架构》

自动登录api架构

  一、小程序调用wx.login获取code

  二、调用自动登录api

  1.此时要传递code参数,服务器端要请求微信api来获取session_key和UnionID,

  2.此时如果微信返回了UnionID,则要使用unionid做为绑定的凭证

  3.在请求此api时,需要appid和appsecret,这两个参数要在服务器端配置(要做一个小程序自动登录配置选项)

  4.还要传递uuid参数,当用unionid查找不到账户时,需要将此uuid做为Key将unionid存储在redis,并返回

  5.在登录绑定时会用此uuid再取出unionid进行绑定

  6.如果自动登录成功(找到相应账号)返回token,如果自动登录失败(没有找到相应账号)提示绑定失败

  7.如果没有读到unionid则要明确返回值给前端

  三、入参:

  1、code

  2、uuid

  四、返回值

  没有读到unionid:

  {

  "autologin":"fail",

  "reson":"unionid_not_found"

  }

  读到了unionid,但没有找到账号

  {

  "autologin":"fail",

  "reson":"account_not_found"

  }

  自动登录成功:

  正常登录的返回token一样的

登录绑定流程

  1.小程序发起登录绑定

  2.调用登录绑定API,首先获取unionId

  从缓存中获取,获取到则进行登录绑定。反之根据uuid从数据库获取unionId。

  从数据库中获取,根据uuid从数据库进行获取unionId,获取到则进行登录绑定,反之调用执行登录注册操作,不进行绑定。

  3.如果从缓存中获取到unionId,需要根据uuid和unionId查询绑定信息,如果查询到记录则更新绑定信息,如果未查询到则新增绑定信息。

  4.如果从数据库中获取到绑定信息则需要更新此账号绑定信息。

  5.登录成功后跳转首页

解密api架构

  一、入参

  1、encrypted_data

  2、code

  3、uuid

  4、iv

  二、处理逻辑

  根据解密算法文档对encrypted_data进行解密,得到unionid

  按自动登录的逻辑处理unionid

  三、返回值:

  没有找到账号

  {

  "autologin":"fail",

  "reson":"account_not_found"

  }

  自动登录成功:

  正常登录的返回token一样的

Token失效更换令牌

  一、入参

  1、uuid

  二、逻辑处理

  通过前端入参uuid到数据库es_connect查询是否存在绑定关系,

  存在,获取令牌返回商城token

  不存在,返回如下

  {

  "login":"fail",

  "reson":"account_not_found"

  }

  前端进行退出操作

小程序退出账号

  小程序退出账号不进行账号解绑,清除商城toekn即可

  效果

  小程序退出登录后到首页,重新登录或者注册则绑定登录或者注册的新账号。

  退出小程序后,再次进入小程序则进行自动登录,用户无感。

  上述就是关于技术方面的内容了,想了解更多详情,可以持续关注易族智汇javashop,有任何问题,欢迎一起探讨。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

后台-系统设置-扩展变量-手机广告位-内容正文底部
留言与评论(共有 0 条评论)
   
验证码: