微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

解决方法

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

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

{u’picture’:
u’07002′,
u’sub’: u’10270538098780639-55′,u’family_name’: u’Dusad’,u’iss’:
u’07003′,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’}

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

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是用户的唯一标识)来提供数据.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐