gpt4 book ai didi

android - Google 登录后端服务器身份验证

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:39:23 25 4
gpt4 key购买 nike

我正在编写一个用于语音聊天的 Android 应用程序,并决定使用 Google 登录通过我的后端服务器进行简单的用户身份验证。但是,我不明白该应用程序应如何通过我的后端进行身份验证。当用户使用他的 Google 帐户登录并且我收到 ID token 时,我可以将 ID token 发送到服务器,然后服务器对其进行验证。然后呢?如何验证以下请求,例如当用户发送/接收语音消息并且应用程序需要将消息上传到服务器/从服务器下载消息时?服务器需要知道是哪个用户在发出请求,但是ID token 是不合适的,因为它很快就会过期,而且它的完整性验证是一个复杂且相对较长的过程。

最佳答案

Google 登录 API:涉及以下步骤:

  • 用户使用 iOS/Android 应用登录 Google。
  • Google 向客户端(iOS/Android 应用程序)返回 tokenid(和一些额外信息。请参阅 link 了解更多信息)。
  • 客户端将tokenid发送给后端服务器。
  • 服务器使用 Google 客户端 API(或通过发出 GET 请求调用 google 端点,但要注意它有与之相关的网络延迟)来验证 token 的完整性。在此步骤中,应满足某些标准。参见 Here .
  • GoogleAPI 向服务器返回一些信息。什么样的信息?像这样:

{u'picture': u'https://lh3.googleusercontent.com/-RD4yn7rqIc8/AAAAAAAAAAI/AAAAAAAALQI/9Ab_kR3_CII/s96-c/photo.jpg', u'sub': u'10270538098780639-55', u'family_name': u'Dusad', u'iss': u'https://accounts.google.com', u'email_verified': True, u'name': u'Utsav Dusad', u'at_hash': u'BMjN0mWeOMqVVBhjW_W9A', u'given_name': u'Utsav', u'exp': 1484582338, u'azp': u'85959433390-npk1ss7juimjqt5hrlhm7v2fj2u7593f.apps.googleusercontent.com', u'iat': 1484578738, u'locale': u'en-GB', u'email': u'utsavdusad@gmail.com', u'aud': u'85959433390-npk1ss7juimjqt5hrlhm7v2fj2u7593f.apps.googleusercontent.com'}

子:主题。用户身份。不要使用电子邮件 ID 作为主键,因为它可能会更改。使用用户 ID。

An identifier for the user, unique among all Google accounts and never reused. A Google account can have multiple emails at different points in time, but the sub value is never changed. Use sub within your application as the unique-identifier key for the user.

有关详细信息,请参阅 here :

  • 服务器返回登录成功给客户端。
  • 客户端使用 tokenID 发出后续(HTTP POST、GET)请求。
  • 服务器通过验证 idtoken 并检查“sub”信息(sub 是用户的唯一身份)来提供数据。

关于android - Google 登录后端服务器身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37413808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com