在到期前自动刷新JWT

时间:2016-03-05 16:51:11

标签: android jwt

我是android的新手,我目前正在尝试在我的应用中实现基本的JWT身份验证。我在JWT的服务器上使用Laravel 5。会话设置为每60分钟在我的服务器上过期。

我现在要做的是编写一个在应用程序中全局运行的函数,无论你在函数上的哪个活动应该每55分钟执行一次,并在服务器上刷新我的JWT。

我还想知道这样一个实现的缺点,如果应用程序关闭会发生什么?计时器是否仍在后台运行?

我看到有几个JWT库可用于Android,但我使用Volley来处理我的HTTP请求,并且不知道如何将这两个库结合起来以实现我想要的结果。

1 个答案:

答案 0 :(得分:1)

当您收到未经授权的错误时,最好刷新令牌。以下是示例示例:

@Override
public void failure(RetrofitError error) {
    try {
        if(error.getResponse().getStatus() == 401){
            //your service for refreshing the token
         } else{
                JsonElement json = (JsonElement) error.getBodyAs(JsonElement.class);
                String err = json.getAsJsonObject().get("err").getAsString();
            }
    } catch (Exception e) {
        // handle the exception

    }
}

此结构的好处是没有冗余后台调用自动刷新令牌。它只会在需要时更新令牌。