Android 如果令牌过期怎么办
我已经使用改型与API进行了通信。当用户登录时,我将帐户保存到数据库,当用户下次转到应用程序时,我从数据库获取数据(所以我跳过了登录屏幕)。问题是当用户的令牌过期时。 如何处理这种情况 在登录片段中 伪码Android 如果令牌过期怎么办,android,authentication,token,retrofit,Android,Authentication,Token,Retrofit,我已经使用改型与API进行了通信。当用户登录时,我将帐户保存到数据库,当用户下次转到应用程序时,我从数据库获取数据(所以我跳过了登录屏幕)。问题是当用户的令牌过期时。 如何处理这种情况 在登录片段中 伪码 user = ... //get user from database if(user != null) { startActivityAccountActivity(); } //onButtonClick emailLogin(); 这取决于您的后端安全级别。你有两种选择来处理
user = ... //get user from database
if(user != null) {
startActivityAccountActivity();
}
//onButtonClick
emailLogin();
这取决于您的后端安全级别。你有两种选择来处理这种情况
刷新令牌
以及用户令牌
。每当用户的令牌过期时,通过发送旧用户令牌
以及刷新令牌
,从Android设备向服务器请求获取新用户令牌
。您可以在将来使用新用户的令牌。每当用户令牌过期时重复此操作
注意-刷新令牌
用于验证请求用户令牌的资源是否有效
这取决于您的后端安全级别。你有两种选择来处理这种情况
刷新令牌
以及用户令牌
。每当用户的令牌过期时,通过发送旧用户令牌
以及刷新令牌
,从Android设备向服务器请求获取新用户令牌
。您可以在将来使用新用户的令牌。每当用户令牌过期时重复此操作
注意-刷新令牌
用于验证请求用户令牌的资源是否有效
onStart()
中
正如indramurari所说,如果您控制它,您也可以在后端处理它。但请记住,这并不能解决您处理过期令牌的固有问题,刷新令牌也可能会过期,而您又回到了原点。如果使刷新令牌不过期,则可以使登录令牌不过期。(这段话可能是对他的回答的评论,但我没有足够的声誉。)不要仅仅因为保存了令牌就去“登录”活动,因为正如您正确注意到的,它可能无效。当您获得令牌时,尝试使用API进行身份验证,并且只有在“登录”活动确实有效时才转到该活动。否则,就好像没有保存令牌一样继续(并从数据库中删除过期的令牌)
您还应该注意,当用户处于“登录”活动时,令牌可能会过期。例如,用户登录、使用该应用程序,然后从最近的屏幕转到另一个应用程序。一周后,他/她返回到您的应用程序,打开“登录”活动,但同时令牌已过期,没有任何功能。因此,您还应该检查令牌是否仍在那里工作,可能在活动的onStart()
中
正如indramurari所说,如果您控制它,您也可以在后端处理它。但请记住,这并不能解决您处理过期令牌的固有问题,刷新令牌也可能会过期,而您又回到了原点。如果使刷新令牌不过期,则可以使登录令牌不过期。(这段话可能是对他的回答的评论,但我没有足够的声誉。)对我来说2)可能更好。因此,
onFailure
检查响应代码并导航到loginFragment,其中包含toast信息,该令牌expired@Stepan看起来更好:)对我来说可能更好。因此,onFailure
检查响应代码并导航到loginFragment,其中包含toast信息,该令牌expired@Stepan看起来好多了:)