【发布时间】:2015-10-12 10:23:54
【问题描述】:
我已经使用 rails 和 doorkeeper 构建了一个 Rest API。我正在使用断言授权流程和 facebook 登录在 android 客户端中创建和登录用户。
我已经成功登录并使用改造从我的服务器获得了访问令牌。访问令牌有 token、refresh_token、token_type、expires_in 和 created_at 信息。
当用户浏览我的 Android 应用程序时,我有以下选项来管理和维护此令牌。
- 当用户打开应用程序并登录时,将访问令牌中的所有信息保存在 SharedPreferences 中。现在成功登录后会导致主要活动,我使用令牌访问共享首选项并访问 api。
- 第二个选项是,我将访问令牌对象作为可打包对象传递,并在下一个活动中使用此对象获取 access_token。
我可以通过将 access_token 与当前时间和 created_at 时间进行比较来检查它是否已过期。每次访问 api 之前。如果它确实过期了,我会使用 refresh_token 访问一个新的令牌。
我认为上述两种方法都会导致代码重复并重复同一件事。
- 如果有任何其他方法可以做到这一点,那也很好。我认为如果我的改造客户端可以管理令牌是否过期并且如果它确实过期,它应该请求一个新的令牌。简而言之,我正在考虑使用某种拦截器。但我不知道该怎么做。
以上哪种方式更适合。
谢谢!
【问题讨论】:
-
我猜这个另一个问题可能会回答这个问题。 stackoverflow.com/questions/30485858/…
标签: android oauth access-token retrofit