-
Notifications
You must be signed in to change notification settings - Fork 38
开放黑客松Authing登陆接口
Junbo Wang edited this page Jun 19, 2020
·
2 revisions
以github登陆为例,其他登陆方式基本相同。
详情请阅读Authing Social登陆官方文档
- 注册Authing账号,创建用户池.
- 创建github oauth app.
- Authing控制台填入github应用信息.
- 更新github oauth app的回调地址
- 前端登陆时跳转至如下地址。
Github_Client_ID从github获取,Authing_UserPool_ID即Authing用户池Id,可从Authing获取:
https://github.com/login/oauth/authorize/?client_id=<Github_Client_ID>&state=<Authing_UserPool_ID>
- 用户登陆完成后,参照回调处理,回调请求为GET,url中
data即为用户信息:
- 需要调用后端登陆接口
POST https://hacking.kaiyuanshe.cn/api/user/authing,data转为json之后直接POST至/api/user/authing即可. 后端完成token验证等流程之后会返回扩展后的用户信息,其中包含全部的Authing返回数据. - Authing返回数据中的
token需要保存,请求黑客松服务端api时需以Http Header的方式传入:Hearders["Authorization"]="token <Token>". 该token是github返回的,黑客松服务端也使用这个token进行认证及授权处理,不再生产新的token. -
data中同时包含字段tokenExpiredAt,过期需重新登陆,后端亦会验证。 - 其它如
email,username,photo均可前端直接使用。
4.黑客松后端api分两类:
-
token_required:Header中必须包含有效token,否则返回code401. -
token非必须:token可选,如果没有传入或者传入无效token,当匿名用户处理,返回匿名用户可以访问的信息。如传入了有效token,则额外返回用户相关信息。以GET /api/hackathon接口为例,匿名用户仅返回黑客松信息,登陆用户额外返回用户报名状态及组队等信息。