使用Java和OAuth 2.0如何维护会话

时间:2015-06-02 05:06:54

标签: java android oauth oauth-2.0 google-oauth

如何使用OAuth 2.0维护会话?
就像我登录Android应用程序一样,现在我想让用户登录,直到用户手动注销,因此对于每个时间段和请求,令牌都会改变。
我应该如何处理Android应用程序中的相同内容? 任何人都可以建议吗?

由于 Dhiraj

3 个答案:

答案 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小时,但这与会话不同。