我试图围绕G +登录流程,但我不确定我是否做得对。
我主要关注this page
在该流程中,我可以连接到我自己的数据库并获取用户名和权限等内容,以及我应该将哪些内容存储为数据库中的标识符(以便在下次登录时快速识别它们)?我应该与G + API交谈并获取他们的G + ID然后存储它(以及我想存储的关于用户的数据)吗?
第二次登录时流量会如何显示? 我需要的东西最终会给我G + ID(如果我用的话),这样我就可以在我的DB中找到它们。
答案 0 :(得分:3)
使用Google+ API调用的最快捷方式是the Google+ Quickstarts。这些示例将为您提供准备好复制并粘贴到应用程序中的代码。我将很快讨论应用程序中演示的流程。
与OAuth 2.0一样,目标是获取承载令牌(OAuth 2.0中的访问令牌)以授权API调用。可以通过多种方式检索令牌,但使用Google+登录按钮登录最重要的是代码交换。
用户第一次遇到您的网站(让我们称之为注册),流程将是代码交换。代码交换模式是:
此时,您的服务器具有访问令牌。这意味着您可以根据授予您应用的用户权限向Google发出API调用(例如,plus.people.get('我'),它会获取已登录用户的个人资料)。
现在应该授权用户使用您的服务器,并且应该根据用户的会话等进行身份验证。但是,现在您遇到了一个新问题,当用户再次从新浏览器访问您的站点或者破坏其会话时会发生什么?
这是转换到下一个重要流程的好时机:身份验证(让我们称之为“登录”)流程。对于登录,您应该让客户端向您的服务器传递身份验证凭据(同样是承载令牌),然后在为数据库中的用户建立新会话之前验证凭据。
verify token examples on the Google+ Github page演示了发送和验证ID令牌的简明代码。
让我们讨论一种传递一种承载令牌ID令牌进行身份验证的方法的细节。
*的步骤最好放在另一个问题中,但是一组典型的测试包括:
希望能为两者解决问题。
您应该了解一个最终流程,用于脱机API访问,令牌刷新。当您具有刷新令牌和过期的访问令牌时,将发生令牌刷新。对于Google的OAuth 2.0实施,访问令牌将在3600秒(1小时)后过期。由于这些令牌过期,因此当您存储的访问令牌过期时,您需要能够获得新的访问令牌。为此,您将三位传递给Google:
这些部分将传递到Google OAuth服务器,然后服务器将返回一个可用于脱机API访问的新访问令牌。
有关此主题的大量信息,另请参阅: