应用程序接入Github登录认证

优先考虑 GitHub Apps 这里讲解 OAuth Apps

文档地址

创建 GitHub OAuth Application

OAuth Application

1
2
3
应用程序名称:顾名思义
应用程序ULR:顾名思义(使用过程中为发现其用途,可能起标记作用)\
Redirect Uri:GitHub 认证授权之后会重定向到这个URL,这一步非常重要。

创建完之后记住Client Id和Client secrets,如:

1
2
Client Id: Ov23liTTSlBvlKogMGEG
Client secrets: *****8bfc50b7

应用程序代码部分

认证授权步骤

  1. 前端页面携带 Client Id 和 Redirect Uri 访问 https://github.com/login/oauth/authorize

    1
    GET https://github.com/login/oauth/authorize?client_id=${clientId}&redirect_uri=${redirectUri}
  2. 认证和授权完毕之后GitHub会将页面重定向到 Redirect Uri,并且会携带code值,code用来交换access_token

    1
    http://localhost/callback?code=e94944d265321bf5654d
  3. 后端应用程序创建一个WEB API接口,使用code交换access_token

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 在接口中调用面这个 HTTP API 用来换取 access_token
    POST https://github.com/login/oauth/access_token
    Content-Type: application/json

    {
    "client_id": "Ov23liTTSlBvlKogMGEG",
    "client_secret": "*****8bfc50b7",
    "code": "e94944d265321bf5654d",
    "redirect_uri": "http://localhost/callback",
    "state": "随机字符串"
    }

注意 Client secrets 一定不要存储到客户端当中,泄漏之后会出现安全问题。