使用刷新令牌的Android AccountManager和dmfs / oauth2-essentials

时间:2018-03-09 18:28:17

标签: android oauth-2.0 accountmanager refresh-token

我正在尝试在应用程序中使用dmfs/oauth2-essentials作为oauth2。问题是刷新令牌。我能够在AccountManager中存储令牌字符串和刷新令牌字符串。使用userdata包刷新令牌。用户首先使用ResourceOwnerPasswordGrant登录并接收带有刷新令牌的令牌。

问题是Bundle只接受像存储字符串这样的原始内容。但是dmfs/oauth2-essentials在使用OAuth2AccessToken

时需要TokenRefreshGrant()个对象

有没有办法直接使用刷新令牌字符串?我错过了什么吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不知道你是否已经解决了你的问题,但我会在这里写下我的经验,以防对某人有用。

您可以使用AccountManager在Android中创建帐户。您可以通过在帐户中存储AccessToken来实现,但也许您还没有意识到您可以在帐户中存储多个令牌,只需键入不同的令牌类型即可。这样,只需传递不同的authTokenType字符串,就可以使用peekAuthToken(Account account, String authTokenType)检索不同的标记。注意不要让用户在getAuthToken(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options)中的Authenticator之外检索refreshToken,我是通过比较authTokenType字符串来实现的。