Oauth2授权后来自Google的数据

时间:2016-02-05 10:11:30

标签: php oauth-2.0

在了解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"/>

1 个答案:

答案 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