PC/WAP联合登录API规划
所有的controller应该放在passport中
PC跳转API
路径
URL: | {passport-domain}/connect/pc/{type} |
---|---|
METHOD | GET |
参数
参数 | 类型 | 说明 |
---|---|---|
type | String | 登录方式,可选有:QQ、WECHAT、WEIBO、ALIPAY |
处理逻辑
拼接参数
redirect至第三方平台
WAP跳转API
路径
URL: | {passport-domain}/connect/wap/{type} |
---|---|
METHOD | GET |
参数
参数 | 类型 | 说明 |
---|---|---|
type | String | 登录方式,可选有:QQ、WECHAT、WEIBO、ALIPAY |
处理逻辑
拼接参数
redirect至第三方平台
callback API
路径
URL: | {passport-domain}/connect/{port}/{type}/callback |
---|---|
METHOD | GET |
参数
参数 | 类型 | 说明 |
---|---|---|
code | String | 第三平台返回的code |
type | String | 登录方式,可选有:QQ、WECHAT、WEIBO、ALIPAY |
port | String | 登录端,可选有:PC、WAP |
处理逻辑
生成一个uuid 向第三方平台请求,获取openid及access_token 拿到openid后检测是否有绑定
一、如果有绑定会员:
如果有绑定则生成token并跳转至前约定的会员中心页(/member) 跳转的同时,向cooike写入如下值:
accessToken=xxx
refreshToken=xxx写入路径为主域名,有效期为token的有效期
二、如果没有绑定会员
将uuid和openid、access_token、type参数进行绑定:
向redis以 OPENID_{UUID}的key 写Auth2Token对象:
跳转至约定的绑定页/binder,并且向cookie中写入uuid
其中的type应该采用枚举: