我有一个api,在验证后返回此信息
"token_type":"Bearer",
"expires_in":86400,
"access_token":"XXXXXXXXX",
"refresh_token":"XXXXXXXXXXX"
Run Code Online (Sandbox Code Playgroud)
我已经成功地在sqlite数据库中保存了访问令牌,刷新令牌和expires_in.如何检查令牌是否已过期?这是我到目前为止所拥有的
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();
}
Run Code Online (Sandbox Code Playgroud)
expiresAt包含expires_in值
小智 6
我建议您使用诸如retrofit之类的框架来帮助您管理身份验证,而无需在每个API调用中检查expiresAt.
在Retrofit或其HTTP客户端OkHttp中.您可以使用专为刷新令牌/自动登录方案设计的新Authenticator API来处理身份验证.您可以参考此链接获取实施细节refresh-oauth-token-using-retrofit-without-modification-all-calls
每当您的API调用返回"401未授权"响应时,它将触发身份验证方法,运行刷新令牌API并使用新访问令牌重新发送原始请求.
| 归档时间: |
|
| 查看次数: |
3684 次 |
| 最近记录: |