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
