Как мне реализовать "войти в систему с помощью Google" на моем сайте? - PullRequest
57 голосов
/ 07 октября 2009

На моем сайте я хотел бы разрешить пользователям входить в систему с помощью учетной записи Google. Я планирую использовать openid, но я хотел бы разрешить вход в систему с Google, потому что это имеет больше преимуществ. В прошлом я заметил несколько сайтов, которые имеют возможность войти в систему с учетной записью Google (Gmail) и IIRC, хотя они НЕ поддерживают openID (но я могу ошибаться).

Как мне реализовать «вход в Google»?

Ответы [ 7 ]

31 голосов
/ 07 октября 2009

Если вы планируете использовать OpenID, используйте это. Google уже является поставщиком OpenID 2.0.

Поставщик OpenID от Google находится по адресу: https://www.google.com/accounts/o8/ud

(ПРИМЕЧАНИЕ. Нет смысла посещать этот URI в вашем браузере, но он работает для OpenID.)

Эта проблема в первую очередь рассматривается на странице API учетных записей , на которой также рассматриваются OAuth и гибридные и проприетарные системы входа в систему. В зависимости от вашего сайта, вы также можете использовать Friend Connect , который является контейнером OpenSocial, внутри которого для аутентификации используется OpenID.

Я, конечно, склонен к Friend Connect, так как я являюсь DPE для этого проекта, но вам, вероятно, лучше обслуживать напрямую с помощью поставщика OpenID, если вы также не делаете вещи, связанные с социальным графом.

Изменить на 2012 год: Вы хотите использовать OAuth 2.0 для входа в систему . GFC закрывается .

16 голосов
/ 07 октября 2009

Возможно, вас заинтересует RPX , представляющее собой комплексное решение, которое позволяет людям выбирать, какого поставщика удостоверений они хотели бы использовать для входа на ваш сайт. Поддерживаются не только Google и OpenID, но и многие другие.

RPX позаботится обо всех деталях взаимодействия с каждым поставщиком удостоверений и предоставит вам общий API для работы.

4 голосов
/ 13 марта 2017

Интеграция Google Sign-In в ваше веб-приложение

Создание проекта консоли разработчика Google и идентификатора клиента.

Загрузить библиотеку Google Platform

Вы должны включить библиотеку Google Platform на свои веб-страницы, которые интегрируют Google Sign-In.

<script src="https://apis.google.com/js/platform.js" async defer></script>

Укажите идентификатор клиента вашего приложения

Укажите идентификатор клиента, который вы создали для своего приложения в консоли разработчиков Google, с метаэлементом google-signin-client_id.

<meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">

Примечание. Вы также можете указать идентификатор клиента своего приложения с помощью параметра client_id метода gapi.auth2.init ().

Добавить кнопку входа в Google

Самый простой способ добавить кнопку входа в Google на свой сайт - это использовать автоматически отображаемую кнопку входа. Имея всего несколько строк кода, вы можете добавить кнопку, которая автоматически настраивает себя так, чтобы иметь соответствующий текст, логотип и цвета для состояния входа пользователя и областей, которые вы запрашиваете.

Чтобы создать кнопку входа в Google, которая использует настройки по умолчанию, добавьте элемент div с классом g-signin2 на страницу входа в систему:

<div class="g-signin2" data-onsuccess="onSignIn"></div>

Другая информация. можно найти здесь


Другое возможное решение:

Использование OAuth 2.0 для доступа к API Google

Протоколы авторизации

Обзор OAuth 2.0

OpenID Connect

OAuth 2.0 для серверных веб-приложений

OAuth 2.0 для веб-приложений JavaScript

OAuth 2.0 для мобильных и настольных приложений

1 голос
/ 29 января 2016

но я хотел бы разрешить вход в систему с помощью Google

В этом случае добавьте следующий код

HTML

 <div id="mySignin" onclick="login()"><img src="google_image_here.png" alt="google" style="cursor:pointer;height: 60px;width: 309px;"/></div>

JS

        <script type="text/javascript">
        function login() 
        {
          var myParams = {
            'clientid' : 'YOUR_CLIENT_ID.apps.googleusercontent.com',
            'cookiepolicy' : 'single_host_origin',
            'callback' : 'loginCallback',
            'approvalprompt':'force',
            'scope' : 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read'
          };
          gapi.auth.signIn(myParams);
        }

        function loginCallback(result)
        {
            if(result['status']['signed_in'])
            {
                var request = gapi.client.plus.people.get(
                {
                    'userId': 'me'
                });
                request.execute(function (resp)
                {
                    /* console.log(resp);
                    console.log(resp['id']); */
                    var email = '';
                    if(resp['emails'])
                    {
                        for(i = 0; i < resp['emails'].length; i++)
                        {
                            if(resp['emails'][i]['type'] == 'account')
                            {
                                email = resp['emails'][i]['value'];//here is required email id
                            }
                        }
                    }
                   var usersname = resp['displayName'];//required name
                });
            }
        }
        function onLoadCallback()
        {
            gapi.client.setApiKey('YOUR_API_KEY');
            gapi.client.load('plus', 'v1',function(){});
        }

            </script>

        <script type="text/javascript">
              (function() {
               var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
               po.src = 'https://apis.google.com/js/client.js?onload=onLoadCallback';
               var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
             })();
        </script>
1 голос
/ 07 октября 2009

Я думаю, что вы хотите Google Friend Connect

edit: Нет, вы больше этого не делаете, поскольку это устарело.

1 голос
/ 07 октября 2009

Я считаю, что вы ищете API аккаунтов Google .

0 голосов
/ 07 октября 2009

Вы можете посмотреть на openId (http://openid.net/), который используется SO и поддерживается Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...