【问题标题】:Implement OAuth2 with resource owner password credentials on Android在 Android 上使用资源所有者密码凭据实现 OAuth2
【发布时间】:2014-05-11 05:24:29
【问题描述】:

我需要调用受 OAuth2 资源所有者密码凭据保护的服务。我尝试了 oauth.net/code 上的所有库,但没有成功。它们似乎都没有提供这种身份验证,但似乎都非常适合 3 腿身份验证。

我的用户应该使用用户名和密码登录,但我不想存储用户名和密码。我想获取一个访问令牌并时常刷新这个令牌。

我的网络通信目前基于spring 4 android和你可以在那里找到的resttemplate。

任何建议,我可以使用哪个库?我认为这是一个常见的问题。

【问题讨论】:

  • This sample client 来自 IBM 开发人员似乎支持资源所有者凭证授予 (Download the sample source)。 Spring security oauth 客户端、google oauth 客户端、leelo 等根本不支持这种授权类型!这并不奇怪,因为这种资助类型是四种资助类型中最不吸引人的。

标签: android spring authentication oauth


【解决方案1】:

我也找不到任何东西,所以我自己建立了一个库,并将其发布给公众。

用法:

import org.sdf.danielsz.OAuth2Client;
import org.sdf.danielsz.Token;

OAuth2Client client = new OAuth2Client(username, password, app-id, app-secret, site);
Token token = client.getAccessToken();

token.getResource(client, token, "/path/to/resource?name=value");

使用这种授权类型,客户端应用程序不需要存储用户的用户名/密码。这些凭据被询问一次并交换访问令牌。然后可以使用此令牌访问受保护的资源。

检查令牌是否已过期:

token.isExpired();

手动刷新令牌:

Token newToken = token.refresh(client);

可以在 github 上的 README 中找到更复杂的示例。

【讨论】:

  • 谢谢丹尼尔,我去看看。
  • 我使用你的代码作为基础。它非常有用,但是您使用我不需要的基本身份验证实现了一些后备。我在拦截代码中添加了调用。
【解决方案2】:

查看此网址:https://temboo.com/library/Library/Fitbit/OAuth/https://temboo.com/library/Library/Fitbit/OAuth/InitializeOAuth/

为了运行 java 代码来生成 OAuth url,您需要 temboo.jar 文件,您可以通过单击右侧链接上的 java 图标下载该文件。

干杯。

【讨论】:

猜你喜欢
  • 2018-05-25
  • 2013-11-23
  • 2020-02-29
  • 2014-09-02
  • 1970-01-01
  • 2015-05-30
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多