我是android的新手,我目前正在尝试在我的应用中实现基本的JWT身份验证。我在JWT的服务器上使用Laravel 5。会话设置为每60分钟在我的服务器上过期。
我现在要做的是编写一个在应用程序中全局运行的函数,无论你在函数上的哪个活动应该每55分钟执行一次,并在服务器上刷新我的JWT。
我还想知道这样一个实现的缺点,如果应用程序关闭会发生什么?计时器是否仍在后台运行?
我看到有几个JWT库可用于Android,但我使用Volley来处理我的HTTP请求,并且不知道如何将这两个库结合起来以实现我想要的结果。
答案 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
}
}
此结构的好处是没有冗余后台调用自动刷新令牌。它只会在需要时更新令牌。