添加 Google 登录后,您的网站就能享受到 Google 的强力支持。用户登录后,您就能获得一个 OAuth 令牌(用于代表用户提出 API 请求),您可以通过它更好地了解用户、让用户与朋友联系,并为用户提供内容更丰富、更具吸引力的体验。
用户首次点击登录按钮时,会看到一个授权对话框。此对话框中会列出应用会以怎样的方式使用用户数据。用户随即可以同意提供授权或取消。提供授权后,用户之后就不会再收到请求授权的提示。另外,如果您有 Android 应用,还可以在网络登录流程中提示用户安装应用。
点击下面的按钮会触发 OAuth 2.0 登录流程并输出授权结果对象。您可以尝试授予访问权限、拒绝授予访问权限并关闭授权对话框,看看各种操作分别会产生怎样的结果。
使用 Javascript 和 HTML 的客户端流程。此方法最易于实施,但是也很有局限性:只有用户在您的网站上处于活跃状态时,您才能调用 Google API。
如果您的服务器需要在用户不处于活跃状态(例如用户不在线)时以用户身份访问 Google API,可以使用服务器端流程。此方法需要由客户端向您的服务器传递一个一次性授权代码,以便获取访问权限和刷新服务器令牌。
当您的用户使用 Google 帐户登录时,您的应用就会获得一个访问令牌。当用户在您的网站上处于活跃状态时,您就可以使用该令牌代表用户调用 Google API。
在您的网页上选择按钮呈现位置,并插入以下 HTML 标记。您必须将CLIENT_ID的替换为您刚才创建的客户端 ID:
data-scope属性用于指示您的应用需要何种类型的用户数据访问权限。data-requestvisibleactions属性定义您的应用请求代表用户写入的生活片段的类型。请参见按钮属性,了解有关自定义按钮的详情。
用户点击按钮时,系统会提示他们授权应用访问此数据。授权结果由回调函数signinCallback处理。您接下来要实施回调函数。
回调函数是您写入的 Javascript 函数,当用户授权或拒绝授权您的应用访问所请求的信息时会调用回调函数。此函数会传递一个表示授权结果的对象。
如果用户之前曾同意您的应用通过此按钮(或代表相同应用的其他按钮)访问,则他们会自动登录。网页加载后,系统会立即自动调用回调函数,并且回调函数会传递一个包含访问令牌的新授权对象。
授权对象中包含一个error字段,其中填写向应用授权时可能出现的问题的相关信息例如,如果用户拒绝访问请求的范围,系统就会触发回调并传递在error字段中包含access_denied的对象。
以上示例检查用户是允许还是拒绝访问,以及检查是否存在错误。访问令牌会自动传递给gapi.auth.setToken方法,方便您后续调用REST API。
如果您想单独跟踪用户的登录状态(独立于 Google 登录状态),可以在这个时候设置一个 cookie。另请参见用户在应用外登录。
用户每次访问应用时都会发生客户端令牌交换流程,但是用户只需向应用授权一次即可。后续访问将会自动通过 OAuth 协议向应用授予权限。
加载此按钮时,系统会自动检查用户是否向应用授予了权限。此种检查被称作“即时模式”。如果检查通过,Google 服务器会传回访问令牌并向回调传递一个新授权结果对象。无法此按钮无法进行即时模式授权,用户必须点击登录按钮触发访问流程。
对于记录应用动态的应用,用户还可以在应用设置页面中取消关联应用和管理应用动态。请注意,在此页面取消关联应用等同于撤消所有访问。要重新关联,用户必须重新访问应用并再次向应用授权。
访问令牌每隔 3600 秒就会过期。您应当谨慎处理访问令牌,因为它们代表您的应用有权通过 Google API 访问用户信息。
根据我们的开发人员政策,您的应用必须提供一种方式来删除您的应用与用户帐户之间的关联。在您的应用中添加此功能后,您就可以回应相应的事件并根据相应政策(例如删除规则)触发适当的逻辑。
以下 Javascript 示例演示了 jQuery 如何以编程方式设计请求式和撤消用户的访问令牌。
引导登录按钮将用户和会话信息存储在用户客户端上的会话 cookie 和 HTML5 会话存储中,以期尽量减少 HTTP 通信流量和区分一个用户可能登录的多个 Google 帐户。我们将这两种存储称为“客户端”存储。
当一个网页包含已加载的登录按钮时,系统就会快速从客户端存储而不是从 Google 客户端访问用户的登录状态,从而缩短加载按钮的延迟。另外,如果用户曾登录过多个 Google 帐户(比如工作帐户和个人帐户),此 cookie 可以让用户选择在您的网站中使用哪个帐户。用户结束浏览会话时,cookie 和会话存储会被删除。
data-cookiepolicy属性的确定可访问 cookie 的 URI 的范围。根据网站的域名选择此,以设置 cookie 的范围。这样,该范围内的所有登录按钮将均可访问 cookie。您应当为网站采用一个具有相当宽泛程度的政策,以减少您的网站向用户客户端写入的 cookie 的数量。理想情况是,对于每个准许您将其写入 cookie 的独特域名后缀,仅使用一个 cookie(例如 example.com 和 example.co.uk 各自使用一个 cookie)。
uri包括为您的网站设置的scheme、site-domain,还可能包括网站port。您提供的用于确定 cookie 的范围。uri越宽泛,cookie 的范围也就越宽泛。您可以查看前五个使用案例,以此为例来了解此问题。指定uri可以采用以下三种 URI 式之一:
注意:网站采用不同域名后缀(例如 和 )也必须采用不同的site_domain,因此必须为它们指定不同的 data-cookiepolicy 标记。
当您的网站只有一个主机名而没有子域(例如主机名为 ,不采用 )。此字符串是等同于上述uri的当前网页方案和主机名称(以及端口号 [如果不采用方案默认端口号])的简写
none不为登录按钮设置 cookie 或会话存储,而且使用一个较低效率的备用机制确定用户和会线;还可以阻止登录了多个 Google 帐户(比如工作帐户和个人帐户)的用户选择要在您的网站中使用的帐户。
注意:您可以通过检查前缀识别登录按钮写入的客户端存储条目:GCSC前缀用于会话 cookie 和 HTML5 会话存储;G_AUTHUSER_前缀仅用于会话 cookie。
只有在 Google Play 商店中免费并且内容达到一定相关度的应用才能使用 Android 应用自动安装功能。
如果您要应用要写入生活片段,课可以使用此键列出您要写入的生活片段类型的完整 URI 列表。例如:。
徽章的颜色主题。Light 会呈现一个显示红色文字和图标的白色按钮。Dark 会呈现一个显示白色文字和图标的红色按钮。
登录按钮和互动分享按钮必须要使用data-cookiepolicy这一按钮属性。您可以根据自己的使用案例,为此属性选择最能满足自己需求的。以下示例按照范围由宽到窄的顺序排列:
以下参数是在script /元素中定义的。这些参数用于控制整个网页上所有类型的窗口小部件使用的语言和按钮加载机制。
当您将explicit加载方式与指向您网页上特定容器的go和render调用结合使用时,可以避免脚本遍历整个 DOM,从而加快按钮呈现速度。请参见gapi.signin.gogapi.signin.render示例。
您可以对登录按钮进行自定义,让其更好地符合您的网站的设计风。您必须遵守品牌塑造准则并在自定义按钮中使用合适的颜色和图标。您还必须确保您的按钮的视觉效果与其他第三方登录选项一样突出。
涉及到的一些问题,当我把相关代码拉取到新项目时,会出现api12500的错误。后来发现是firebase中一个设置的问题:
1.twitter、facebook可以使用友盟或者其他的第三方登录,这里不再赘述,按着步骤一步一步搞就好。
之后按着步骤添加配置就可以了,重要的是在配置平台时候注意修改是debug的SHA1还是release的SHA1

