使用 Github OAuth 和 Spring Boot 将“代码”交换为“令牌”

问题描述 投票:0回答:1

我正在使用一个 Spring Boot 应用程序,该应用程序使用 Github OAuth 进行登录/注销。据我了解,如此处所述,我可以使用下面的端点来交换 Github OAuth 服务器提供的“代码”,以获取令牌,我可以将其传递给此调用以初始化具有与范围匹配的权限的 GitHub 对象。 OAuth 应用程序:

POST https://github.com/login/oauth/access_token
   GitHub github = new GitHubBuilder().withOAuthToken(theToken).build(); 

但我还没有找到任何示例代码来说明如何从 OAuth 响应中获取此“代码”。

有人有这样做的例子吗?或者还有其他方法可以实现我想要实现的目标吗?我想做的主要事情是允许用户授权应用程序查找与登录用户的 Github 帐户关联的电子邮件的完整列表。

我使用 Octokit 在 Rails 中做了类似的事情;在那里,

omniauth
gem 负责处理这个问题,并将令牌放入
auth.credentials.token
,然后可以将其传递给 Octokit。我正在尝试将一个 Rails 应用程序移植到 Spring,这是我当前的绊脚石。

有人能指出我正确的方向吗?

我已经尝试了在各种 stackoverflow 帖子和其他论坛上到处找到的几十个示例,但每个示例都给了我一个空字符串或一个空值,所以我一定是在做一些根本错误的事情。

spring-boot github-api spring-security-oauth2 spring-oauth2 github-oauth
1个回答
0
投票

code参数来自授权服务器重定向uri后面的参数,如下所示

http://client1.hiboot.cn:8081/login/oauth2/code/client-app?code=5844ed70eae48356026e&state=7KgiK-25VL5ONtdfy9hf5eft1xlnRijovlovXzeB7PA%3D

这是标准的oauth2授权码模式

© www.soinside.com 2019 - 2024. All rights reserved.