添加和检查授权令牌的最佳方法是什么?

时间:2016-09-14 08:29:17

标签: android retrofit2

我正在实现一个Android应用程序,它将验证服务器的用户详细信息并存储返回令牌。对于后续请求,它应该将令牌与每个请求一起发送。以下是我需要考虑的一些要点。

  1. 我正在使用Retrofit 2库向服务器发送http请求
  2. 该令牌将由JWT库生成并发送回客户端
  3. 如果令牌不存在或无效或过期,服务器将抛出400/401错误
  4. 设计

    1. Android应用程序的登录页面未受到登录保护,因此用户可以在使用其凭据之前查看该应用程序
    2. 一旦他进入MainActivity,对其他屏幕的任何请求都需要身份验证。因此,所有其他活动都将检查令牌并重定向到登录活动。
    3. 如果从服务器收到的任何响应都有400/401标题,它还应该重定向到登录页面。
    4. 考虑到上述要求,我尝试在Retrofit服务生成器类中添加一个拦截器,该拦截器将在每个请求/响应上执行。

      问题

      对每个请求执行拦截器,而不是每个活动执行一次。即如果主活动中有n个异步调用,则会打开n个逻辑活动(因为所有这些请求都不会出现令牌)。

      有人可以帮我识别:

      1. 如果有更好的设计可以避免此类问题或
      2. 有没有办法暂停主要活动,直到登录完成后再恢复。

0 个答案:

没有答案