我需要调用受 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/