我在使用授权代码授予授权对 spotify 网页 API 进行授权时遇到问题。我知道我必须填写我的客户端ID,客户端密码并将uri重定向到字符串,但我不知道如何获取字符串,这是获取访问令牌所必需的称为代码的字符串。
final String clientId = "<your_client_id>";
final String clientSecret = "<your_client_secret>";
final String redirectURI = "<your_redirect_uri>";
final Api api = Api.builder()
.clientId(clientId)
.clientSecret(clientSecret)
.redirectURI(redirectURI)
.build();
/* Set the necessary scopes that the application will need from the user */
final List<String> scopes = Arrays.asList("user-read-private", "user-read-email");
/* Set a state. This is used to prevent cross site request forgeries. */
final String state = "someExpectedStateString";
String authorizeURL = api.createAuthorizeURL(scopes, state);
/* Continue by sending the user to the authorizeURL, which will look something like
https://accounts.spotify.com:443/authorize?client_id=5fe01282e44241328a84e7c5cc169165&response_type=code&redirect_uri=https://example.com/callback&scope=user-read-private%20user-read-email&state=some-state-of-my-choice
*/
然后
/* Application details necessary to get an access token */
final String code = "<insert code>"; //I don't know where I get the value for this string from
/* Make a token request. Asynchronous requests are made with the .getAsync method and synchronous requests
* are made with the .get method. This holds for all type of requests. */
final SettableFuture<AuthorizationCodeCredentials> authorizationCodeCredentialsFuture = api.authorizationCodeGrant(code).build().getAsync();
/* Add callbacks to handle success and failure */
Futures.addCallback(authorizationCodeCredentialsFuture, new FutureCallback<AuthorizationCodeCredentials>() {
@Override
public void onSuccess(AuthorizationCodeCredentials authorizationCodeCredentials) {
/* The tokens were retrieved successfully! */
/* Set the access token and refresh token so that they are used whenever needed */
api.setAccessToken(authorizationCodeCredentials.getAccessToken());
api.setRefreshToken(authorizationCodeCredentials.getRefreshToken());
}
@Override
public void onFailure(Throwable throwable) {
/* Let's say that the client id is invalid, or the code has been used more than once,
* the request will fail. Why it fails is written in the throwable's message. */
}
});
你知道如何获得这个代码并成功获得访问令牌吗?
谢谢
我现在已经解决问题了。
您不必创建Web服务!解决方案其实很简单。你只需要创造一个意图
意图.ACTION_VIEW
作为第一个参数,并以您的url作为第二个参数,并以Intent作为参数调用startactive。然后你必须添加这个
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="callback"
android:scheme="yourcustomprotocol" />
</intent-filter>
到清单中的活动标签,最后但并非最不重要的是在
上新意图(最终意图)
在这里,您可以获得从中提取代码的意图的url。
正如您在授权代码流的描述中阅读的那样,您需要将用户发送到Spotify URL。此URL在AuthizeURL字符串中给出:
/* Continue by sending the user to the authorizeURL, which will look
something like
https://accounts.spotify.com:443/authorize?client_id=5fe01282e44241328a84e7c5cc169165&response_type=code&redirect_uri=https://example.com/callback&scope=user-read-private%20user-read-email&state=some-state-of-my-choice
*/
在用户登录并获得访问给定范围的应用程序权限后,Spotify会将用户重定向到回调url。这就是问题变得越来越复杂的地方。您需要接收Spotify在回调url中提供的代码参数。此代码参数是正在进行的流程所需的值。您正在使用的spotify web api java没有提供任何内容来接收此请求。您需要通过使用例如Spring RESTful Web Service来找到解决方案。
本文向大家介绍oauth 授权码授予,包括了oauth 授权码授予的使用技巧和注意事项,需要的朋友参考一下 示例 第1步 第2步 资源
对于授权码授予,密钥是否应该映射到每个单独的用户? 发送电子邮件时,发件人的电子邮件是什么? 谢谢 J Larry的其他信息: 这太棒了!。Docusign对库存流进行了积极监控!我正在使用JWT 我配置了一个用户。我假设电子邮件正文将类似于下面的一个。 我的问题是,如果使用密钥来识别应用程序,客户知道电子邮件是从应用程序发送的,但他如何知道使用应用程序的哪个员工发送电子邮件? 请参阅以下电子邮件
我们必须在我的客户项目中集成OAuth2.0授权代码授予。目前,该应用程序使用本地登录页面。我们需要删除该页面,并将未登录的用户重定向到AS登录页面,。在AS end成功登录后,我们将被重定向到配置的。此时,我的客户端应用程序将如何知道用户已在AS登录?如何在客户端维护会话?另外,我需要用和访问令牌交换auth代码,并将其用于后续的服务器API调用。那么如何实现这一点并将令牌作为标头发送呢? 应用
产品-服务:具有受保护路由的简单下游服务 jwt-resoure-server:当包含在下游服务中时,使其成为提取jwt令牌并将其设置在安全contex中的资源服务器的jar。 尤里卡-服务:发现服务 zuul-server:边缘服务器 Okta是我的auth服务器 我已经将oauth grant类型设置为be-Authorization code(我知道对于spa来说,建议使用隐式grant类型
我是这方面的新手,读了很多之后,我觉得我不太明白如何在Keycloak中实现授权代码流。我的疑惑: > < li> 在创建了支持此流程的客户端后,如何执行凭据验证?默认情况下,如果我不做任何配置,我会得到一个登录表单。如果我在浏览器中打开这个html,并填写用户和密码字段,当我按下按钮时,它会将我发送到一个类型为.../realm/{ REAL _ NAME }/log in-actions/au
我试图复制cognito hosted ui sign in页面(https://docs.aws.amazon.com/cognito/latest/developerguide/login-endpoint.html)的功能,但是aws sdk没有提供任何获取用户名、密码并返回授权代码的方法,这些代码可用于获取Access/ID令牌。initiateAuth和adminInitiateAuth