在Android上使用资源所有者密码凭据实施OAuth2

时间:2014-03-31 18:04:36

标签: android spring authentication oauth

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

我的用户应使用用户名和密码登录,但我不想存储用户名和密码。我想获得访问令牌并不时刷新此令牌。

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

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

2 个答案:

答案 0 :(得分:2)

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

<强>用法:

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中找到更复杂的示例。

答案 1 :(得分:0)

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

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

欢呼声。