繁体   English   中英

检查访问令牌是否过期

[英]Check if access token expired

我有一个api,经过身份验证后会返回此

"token_type":"Bearer",
"expires_in":86400,
"access_token":"XXXXXXXXX",
"refresh_token":"XXXXXXXXXXX"

我已经成功将访问令牌,刷新令牌和expires_in保存在sqlite数据库中。 我如何检查令牌是否已过期? 这是我到目前为止所拥有的

if(new Date().after(expiresAt)){
            Toast.makeText(this, "Token expired", Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(this, "You still have time", Toast.LENGTH_SHORT).show();
        }

expiresAt包含expires_in值

我建议您使用诸如翻新之类的框架来帮助您管理身份验证,而不必在每个API调用中都检查expiresAt。

在Retrofit或其HTTP客户端OkHttp中。 您可以使用新的Authenticator API处理身份验证,该API专为您的刷新令牌/自动登录方案而设计。 您可以参考此链接以获取实现细节, 无需刷新所有调用即可刷新-oauth-token- to -retrofit-

每当您的API调用返回“ 401未经授权”响应时,它将触发身份验证器方法,运行刷新令牌API并使用新的访问令牌重新发送原始请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM