如何使用OAuth 2.0维护会话?
就像我登录Android应用程序一样,现在我想让用户登录,直到用户手动注销,因此对于每个时间段和请求,令牌都会改变。
我应该如何处理Android应用程序中的相同内容?
任何人都可以建议吗?
由于 Dhiraj
答案 0 :(得分:0)
存储expires_in字段和refresh_token以及access_token,以及在SharedPreferences之类的某个地方传递令牌的unix时间戳。
下次需要使用需要身份验证的内容时,请在获取原始访问令牌+ expires_in * 1000时,使用提供的unix时间戳仔细检查当前的unix时间戳。
如果当前时间戳大于这两者的总和,则access_token已过期,您需要使用renewal_token,client_id和client_secret向OAuth端点向身份验证服务发送新令牌请求。
答案 1 :(得分:0)
您也可以使用此网址:https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=your_access_token并获取如下所示的json响应以获取有效令牌:
{
"audience":"8819981768.apps.googleusercontent.com",
"user_id":"123456789",
"scope":"profile email",
"expires_in":436
}
和无效令牌:
{"error":"invalid_token"}
有关详细信息,请查看以下链接:Using OAuth 2.0 for Client-side Applications,标题验证令牌可解释此过程。
答案 2 :(得分:0)
OAuth没有会话的概念。每个REST请求都需要Authorization标头中的有效访问令牌。您想要实施的任何“会话”都是您的责任。您获得的任何访问令牌通常(不一定)持续1小时,但这与会话不同。