工作流
无
无
无
1. 获取已配置的登录方式
| 地址 | 请求方式 | 参数 | 简介 |
| /v/auth/oauth2/user/providers.json | GET | ct=public_json | 获取可用登录方式或作为接口返回登录方式的数组 |
返回值: 以下为当前支持的所有登录方式
{
"_runCommand":[
{
"command":"updatelv",
"params":[
{
"providers":[
{
"name":"微信扫码登陆",
"provider":"wechatkf",
"icon":"/img/auth/oauth/icon64_appwx_logo.png"
},
{
"name":"微信App登陆",
"provider":"wechatapp",
"icon":"/img/auth/oauth/icon64_appwx_logo.png"
},
{
"name":"微信登陆",
"provider":"wechat",
"icon":"/img/auth/oauth/icon64_appwx_logo.png"
},
{
"name":"qq App登陆",
"provider":"qqapp",
"icon":"/img/auth/oauth/icon64_appqq_logo.png"
},
{
"name":"qq PC登录",
"provider":"qq",
"icon":"/img/auth/oauth/icon64_appqq_logo.png"
},
{
"name":"Twitter登陆",
"provider":"twitter",
"icon":"/img/auth/oauth/icon64_tw_logo.png"
},
{
"name":"",
"provider":"facebook",
"icon":"/img/auth/oauth/icon64_fb_logo.png"
},
{
"name":"微博App登陆",
"provider":"weiboapp",
"icon":"/img/auth/oauth/icon64_appwb_logo.png"
},
{
"name":"微博登陆",
"provider":"weibo",
"icon":"/img/auth/oauth/icon64_appwb_logo.png"
}
]
}
]
}
],
"success":true
}注意:
1)这里列出的为所有登录方式,不代表从接口中可以获取所有方式,需要后台设置登录方式才可以被接口获取到,之后会根据平台判断返回可用方式
2)图标仅为参考用,也可自行判断生成可用登录方式,返回自定义图标
3)除provider属性其余属性都是可以自行修改的,但需注意模块更新后修改会被覆盖
2. 发起登录请求
| 地址 | 请求方式 | 参数 | 简介 |
| /auth/oauth2/user/login.html | GET | provider=XXX | 发起登录请求 |
provider的值为通过providers.json视口所返回的.例如 qq,wechat
配置
{
"oauth2":{
"rurl":"用户通过第三方登录成功跳转到的页面(相对路径)",
"role":["用户通过第三方登录成功后在网站上的默认角色"]
}
}
如果不做配置,默认跳首页,注意当前直接给接口rurl传值跳转到目标页面无法生效。
第一步: 登录方式列表动态化
第二步: 登录按钮动态化
用户登录成功后可以获取以下信息除uid,role之外其他所有字段都可能为空,可以通过provider判断当前用户是以何种方式登录的,正常登录为local
req.user = {
"uid": "uid", // 用户id. 注意user表中已经自动创建用户了.
"_phonenumberchecked": "no",
"_emailchecked": "no",
"_status": "normal",
"lang": "cn",
"role": [
"user"
],
"provider": 'wechat|qq|weibo|fb|twitter',// 登录方式
"openid": 'openid', // 登录平台下的唯一标示
"nickname": 'nickname', // 昵称
"gender": '女', // 性别
"city": 'city', // 城市
"province": 'province', // 省份
"country": 'country', // 国家
"unionid": 'unionid', // 唯一标示
"headimgurl": 'headimgurl' // 头像地址
1)绑定用户与登录其实质没有区别,都是通过调用/auth/oauth2/user/login.html?provider=xxx接口,实现登录,此时已经将openid存储在用户表中,当前的第三方登录可以通过 providerNameopenid_noana字段判断登录是否成功,openid也同样存有用户的openid
2)后台的配置项有一项全局配置,自定义关联时不会修改用户信息,但是自定义关联一定要自行接管创建用户的动作