美文网首页
Github App

Github App

作者: saoraozhe3hao | 来源:发表于2021-05-10 10:56 被阅读0次

    OAuth App

    流程
    1、在 Settings -> Developer Settings -> OAuth App 下创建 OAuth App,填写回调地址,得到 Client ID 和 Client secret
    参考:https://docs.github.com/cn/developers/apps/creating-an-oauth-app
    2、前端引导用户 到 https://github.com/login/oauth/authorize?client_id=*** 进行登录操作
    3、用户登录后,自动回跳到 http://回调地址?code=***
    4、前端拿到 code 以后 提交给后端
    5、后端凭 code 从 https://github.com/login/oauth/access_token 拿到 access_token
    参考:https://docs.github.com/cn/developers/apps/authorizing-oauth-apps
    6、后端从此就可以凭 access_token 调用 Github 的只读 API
    参考:https://docs.github.com/en/rest/reference/repos

    Github App

    1、在 Settings -> Developer Settings -> Github App 下创建 Github App,选择API权限 和 webhook 订阅的事件
    填写 “Callback URL”,勾选 “Request user authorization (OAuth) during installation”,使得用户安装时就会跳转到 “Callback URL”,同时带上 code,开发者 拿 code 取得 access_token,同 OAuth App
    参考:https://docs.github.com/en/developers/apps/identifying-and-authorizing-users-for-github-apps
    “User-to-server token expiration” Opt-out,使得 access_token 不会过期
    填写 “Webhook URL” 用来订阅 仓库事件
    2、用户安装 Github App,会被引导登录和授权,后带code跳转到 “Callback URL”
    3、前端拿到 code 以后 提交给后端,后端凭 code 从 https://github.com/login/oauth/access_token 拿到 access_token
    4、后端拿 access_token 从 https://api.github.com/user/installations 获取安装信息,得到 installtion_id 列表,与 acceess_token 对应保存起来
    参考:https://docs.github.com/en/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps
    5、订阅事件发生时,Github 将事件推送到 “Webhook URL” ,后端通过installation_id找到对应的 access_token,进而 调用 Github 的 API
    事件类型:header X-GitHub-Event
    installation_id:payload installation.id

    相关文章

      网友评论

          本文标题:Github App

          本文链接:https://www.haomeiwen.com/subject/czobdltx.html