后端和客户端之间的Google登录访问令牌

时间:2016-12-22 14:56:01

标签: android oauth-2.0 backend google-signin

对于hack周的快速项目,我和我的团队实施了Google Sign-In作为用户的注册/身份验证。它的工作方式:

  1. 用户在客户端(Android + iOS)上使用SDK登录并请求access_token
  2. 客户端收到acces_token并将该令牌用作后端的每个网络请求作为查询参数
  3. 我们的后端不代表用户与Google服务互动
  4. 我面临的问题是,谷歌SDK返回的提供的access_token是短暂的(60分钟)。这基本上导致了两个问题/问题:

    1. 短生活access_token是否意味着以这种方式使用? 我习惯了另一个流程,您只需使用谷歌或任何其他身份验证提供程序返回的令牌来对您的后端进行身份验证,然后使用您自己的身份验证机制(也可能是基于令牌的)。

    2. 如果我错了1.那么在每60分钟到期时,在客户端刷新令牌的好习惯是什么。我理解的方式是Google SDK启动了一个活动结果登录,我宁愿在没有上下文的情况下处理数据层中的所有网络。在我每次请求后端之前是否检查该令牌的有效性,或者在我收到401回复或类似内容之后我是否开始某种更新?

    3. 我在那个领域有点新鲜,我对我们团队中后端人员的正确与错误进行了一些讨论。我认为第一名是对的,他说第二名。我在这里可能非常错误。一些不错的输入或资源会很棒,因为所有在线文档都没有回答这两个问题。

1 个答案:

答案 0 :(得分:0)

有一件事情是使用您提供的Google提供的访问令牌在您的后端生成新的访问令牌,并在登录/注册时将此令牌发送给客户端。现在,您的每个请求都将使用此令牌来识别用户并跟踪所有内容。 这也不会过期。我在我的应用程序中使用了它,它完美无缺。