android - 在 Android 上使用资源所有者密码凭证实现 OAuth2

标签 android spring authentication oauth

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

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

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

有什么建议,我可以使用哪个库?我认为这是一个普遍的问题。

最佳答案

我也找不到任何东西,所以我自己整理了一个库,并向公众发布了它。

用法:

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 。然后可以使用此 token 访问 protected 资源。

检查 token 是否已过期:

token.isExpired();

手动刷新 token :

Token newToken = token.refresh(client);

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

关于android - 在 Android 上使用资源所有者密码凭证实现 OAuth2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22768914/

相关文章:

android - 有什么方法可以避免在 Android 上安装失败权限级别降级?

android - 更改 Android 复合 TextView 中的图像 - 不起作用

java - 使用 Retrofit/Rxjava 进行数据绑定(bind)/实时数据处理配置更改

java - Spring Boot - 不支持内容类型 'application/x-www-form-urlencoded;charset=UTF-8'

html - ajax登录使用httpRequest?

java - 需要帮助解决 Android NullPointer 问题

java - Spring AOP : "no declaration can be found for element ' aop:config' "

java - 发现以元素 'global-method-security' 开头的无效内容

java - 出现致命异常 : main error

angularjs - 我应该如何确保访问后端呈现的前端路由的用户经过身份验证?