令牌及其处理方式

时间:2018-06-29 03:38:52

标签: android

我正在开发一个将数据拉入服务器的应用程序。

为防止不必要地使用Web服务,我们建立了一个令牌系统,该系统每隔一段时间会更新一次。

我正在创建一种方法,该方法将在每次Web服务调用之前检查令牌是否不为空。

类似的东西:

public boolean isTokenValid(){
    if (token == null){
        renewToken();
        return false;
    }
    return true;
}

如果我收到令牌已过期的服务器错误代码,请以相同的方式致电renewToken()

我的问题:

如何在收到有效令牌时再次调用我的方法?请记住,此后调用的方法是“动态的”:可以从任何Web服务调用该方法,因此要求该方法再次运行此调用。

潜在的解决方案:

1)创建与Web服务一样多的令牌续订方法。

例如:renewTokenGetProduct(),renewTokenGetProfile()...了解在获取有效令牌时要调用哪个Web服务。但这似乎是不合适的。

2)我也可以传递参数。例如renewToken(PRODUCT)或renewToken(PROFILE),然后使用条件或广播,但在我看来,这又有点矫kill过正/草率。

1 个答案:

答案 0 :(得分:1)

从api方面尝试使用令牌添加另一个参数。

像令牌和类别。

如此

public boolean isTokenValid(){
if (token == null){
    renewToken();
    return false;
}
return true;
}

然后使用续订令牌:

if(category.equals("profile"){
  //do necessary work
}
else if(category.equals("product"){
  //do necessary work or pass intent
}
else{
  //
}