Skip to content

开放黑客松Authing登陆接口

Junbo Wang edited this page Jun 19, 2020 · 2 revisions

以github登陆为例,其他登陆方式基本相同。

准备工作

详情请阅读Authing Social登陆官方文档

  • 注册Authing账号,创建用户池.
  • 创建github oauth app.
  • Authing控制台填入github应用信息.

开放黑客松前端接入流程

  1. 更新github oauth app的回调地址
  2. 前端登陆时跳转至如下地址。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>

  1. 用户登陆完成后,参照回调处理,回调请求为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接口为例,匿名用户仅返回黑客松信息,登陆用户额外返回用户报名状态及组队等信息。

Clone this wiki locally