在了解Google Oauth2时,我看到了两种实施方案
选项1)使用本地安装在服务器上的PHP客户端库 示例 - http://phppot.com/php/php-google-oauth-login/
选项2)使用Javascript,AJAX,PHP&谷歌平台库(直接来自CDN) 示例 - http://w3lessons.info/2015/05/19/google-oauth-2-0-ajax-login-using-jquery-php-mysql/
我已经能够实现这两个目标。但是我有以下问题:
问题1)
在选项1中[$profile = $this->client->verifyIdToken()->getAttributes();]
为我提供了仅包含email[email]
&的个人资料数据。 google ID[sub]
。
输出:$profile
Array
(
[envelope] => Array
(
[alg] => R256
[kid] => ca6f0ece055ffa823454e56da
)
[payload] => Array
(
[iss] => accounts.google.com
[at_hash] => e5l-tvQpWQ
[aud] => 8pps.googleusercontent.com
[sub] => 186524872
[email_verified] => 1
[azp] => 1go.apps.googleusercontent.com
[email] => sagl@gmail.com
[iat] => 14543
[exp] => 14543
)
)
在选项2中,[var profile = googleUser.getBasicProfile();]
为我提供了一个个人资料数据,其中包含全名&谷歌ID&amp ;;上的个人资料图片链接电子邮件
是否有任何功能可以获取我的个人资料名称&使用选项1的图片链接(仅基于PHP的实现)
问题2)对于选项2,我如何修改Google通过div发送的默认“Google按钮”徽标:
<div class="g-signin2" data-longtitle="true" data-onsuccess="Google_signIn" data-theme="light" data-width="200"/>
答案 0 :(得分:0)
问题1:$ profile ['payload']现在有一个名为picture的附加键,其值是个人资料图片的URL。
问题2:您可以使用有限数量的属性来自定义登录按钮:数据范围,宽度,高度,数据标签,数据主题,数据成功和数据失效。 data-scope用于请求权限范围。 data-longtitle采用true或false(默认)值来确定是否要分别显示“使用google登录”或“登录”。数据主题采用光明或黑暗的值。并且数据onsuccess和data-onfailure会在成功/失败登录尝试时调用js函数。
除此之外,你还需要做一些阅读才能真正自定义按钮:https://developers.google.com/identity/sign-in/web/build-button#customizing_the_automatically_rendered_sign-in_button_recommended