当前位置: 首页 > 网络应用技术

三 - 方应用程序登录访问GitHub解决方案

时间:2023-03-09 02:02:20 网络应用技术

  Github使用Oauth授权

  OAuth授权原则步骤

  1.首先,您需要在GitHub上创建一个OAuth应用:OAuth应用程序管理地址

  请注意,最后一个回调地址(前端/后端)。当用户单击授权时,GitHub将将授权代码带到此地址。此地址可以是任意和法律地址,例如[http:// localhost:8080/]()在本地开发和调试。,github将在指定的恢复地址中添加一个名为代码的查询参数。(命名代码为硬码)例如:[https://blog..twofei.com/login?type=github&code = xxxxxxxx]()请注意后一个代码部分。

  另外,因为这是添加到URL的查询参数,并且显然是由浏览器重定向的,因此这是一个GET请求,而不是发布。

  创建创建之后,您可以获取客户端ID和相应的客户端秘密,也可以设置一个avatar。可以公开公开ID,客户秘密,请不要泄漏。

  2.首先,我们的用户访问了网站的主页。当您单击登录时,您可以执行自己的逻辑。在这里,您将在将其发送到github [https://github.com/login/oauth/authorize]()之前处理客户端ID和redirect_uri]经过验证和授权。目前,Github将回电我们的重定向乌托里并携带代码信息。

  单击GitHub在三个选项应用程序登录位置登录。请求路径相似:

  :client_id,将在创建oauthapp之后返回

  :创建oauthapp时填写的回调地址

  3.访问授权后,GitHub将询问用户是否授权并询问数据

  如果用户同意授权,则GitHub将跳到指定的跳跃网站,并带上授权代码,而跳回的URL如下。

  在后端收到此请求后,我得到了授权代码(代码)。接下来,后端只需要通过请求获取代码的值。

  4.获得基本参数后,请GitHub询问令牌

  github的令牌接口发布https://github.com/login/oauth/access_token需要提供三个参数

  5.作为响应,GitHub将返回一个JSON数据的部分,其中包含令牌AccessStoken

  令牌后,您可以要求GitHub询问数据

  在上面的代码中,GitHub API的地址是https://api.github.com/user。在要求时,您必须带上令牌授权:HTTP标头信息中的令牌xxxxxxxx

  然后,您可以获取用户数据并获得用户的身份

  6.获得用户身份后,如果本地数据库没有用户信息,请创建用户,有些人会生成自己的令牌以登录

  在将步骤2启动到GitHub到前端之后,GitHub将回电并重定向地址以更改地址

  用户输入三方程序以选择登录到登录页面

  选择GitHub登录:启动请求

  和携带参数:两个参数:client_id and redirect_uri

  用户在登录页面上选择GITHUB登录后,它将跳至GitHub验证

  通过验证通过后,它将转到重定向页面,并启动get请求,携带查询参数代码

  例如,我的重定向地址是:http:// localhost:8080/oauth/redirect

  然后,我将跳到http:// localhost:8080/oauth/redirect?代码= xxxxxxxxxxxxxx github验证后

  1.查询参数代码请求的前端重定向是向后启动的。

  携带参数:

  请求后,获取JSON内容,获取access_token参数

  启动请求获取:https://api.github.com/user,请求头中crance access_token

  确定用户在三方的应用中不存在,并且如果没有存在,则可以创建它。之后,其一代平台的代币返回到前端。

  原始:https://juejin.cn/post/7096067409517215780