跳到主要内容

第三方登录架构

PC/WAP 登录授权交互

image-20180613210027415

一、用户点击第三方登录按钮(QQ、微信等),请求授权api

要传第三方平台类型参数(qq,weixin,alipay等)

二、联合登录API拼接好参数后跳转至第三方平台

三、第三方平台回跳至我方的联合登录api

在此时我方API拿到Code参数

四、根据Code获取openid

五、根据openid查找是否有已经绑定的会员

此时要先生成一个UUID

如果有已经绑定的会员,则将UUID和此会员对象建立关联,存在redis中

六、跳转至绑定页或会员中心

我们建立如下约定:

绑定页为:/binder

会员中心:/member

在跳转时,要向浏览器写入cookie,存储uuid和token

七、前端由cookie中读取uuid和token

如果读取到token,则跳转至会员中心

如果读不取token,则跳转至绑定页

八、进行注册或绑定账号时,需要传递UUID参数

登录绑定时如果会员已绑定过,则前台给予提示,同意绑定后调用登录绑定openid api进行绑定 注册绑定时,注册过程使用注册会员api,注册成功后前台调用注册绑定openid api进行绑定,会根据uuid拿到之前的openid、昵称、头像等更新会员信息

APP授权登录交互方式

image-20180614144121281

app的授权登录由app和第三方平台交互,但其密钥等参数是由我们的api提供的

当app得到openid后,要请求api查看此openid是否已绑定

如果未绑定,再请求我们的绑定api进行绑定