如何从Google+OAuthJS登录中获取user_email

How to get user_email from Google+ OAuth JS Login?

本文关键字:获取 user email 登录 Google+OAuthJS      更新时间:2023-09-26

我正在使用G+s oAuth 2.0 JS功能。

这是我的脚本:

<script>
    function signinCallback(authResult) {
        if (authResult['access_token']) {
            // Autorisierung erfolgreich
            // Nach der Autorisierung des Nutzers nun die Anmeldeschaltfläche ausblenden, zum Beispiel:
            document.getElementById('signinButton').setAttribute('style', 'display: none');
            console.log(authResult);
        } else if (authResult['error']) {
            // Es gab einen Fehler.
            // Mögliche Fehlercodes:
            //   "access_denied" – Der Nutzer hat den Zugriff für Ihre App abgelehnt.
            //   "immediate_failed" – Automatische Anmeldung des Nutzers ist fehlgeschlagen.
            // console.log('Es gab einen Fehler: ' + authResult['Fehler']);
        }
    }
</script>

我的按钮是这样的:

 <span id="signinButton">
                          <span
                            class="g-signin"
                            data-callback="signinCallback"
                            data-clientid="XXXXX"
                            data-cookiepolicy="single_host_origin"
                            data-requestvisibleactions="http://schema.org/AddAction"
                            data-scope="https://www.googleapis.com/auth/plus.login">
                          </span>
                        </span>

为什么console.log(authResult)不给我回电子邮件?我只是取回了一些代币的背景信息。。。

因为这只是凭据。要获取有关特定用户的配置文件信息,您需要向people.get.发出API请求

类似这样的东西应该适用于gap.client.request,但您可能必须使用path,并且可能必须手动将access_token添加到请求中。

gapi.client.request({
    'path': 'people/me',
    'method': 'GET',
    'callback': function(person) {
        console.log(person);
    },
});