Как вы позволяете клиентам входить на ваш сайт, используя свою учетную запись Google? - PullRequest
22 голосов
/ 26 января 2009

Я только что видел http://uservoice.com/login. Он использует учетные записи Google, Myspace , Yahoo, OpenID и все для входа клиентов на свой сайт? Могу я это сделать?

Я имею в виду, что клиентам не нужно регистрироваться на моем сайте. Они могут просто войти со своими аккаунтами на указанных сайтах.

Если у вас есть решение, я бы предпочел решение на основе PHP и MySQL.

Ответы [ 7 ]

15 голосов
/ 26 января 2009

См. Здесь: Google Login PHP Class .

Также не забудьте обратиться к сайту федеративного входа Google для получения дополнительной информации.

5 голосов
/ 26 января 2009

Вы также можете посмотреть на это: https://rpxnow.com/ - потребуется только интеграция на уровне HTML / javascript.

Это то, что http://uservoice.com/login, похоже, использует.

4 голосов
/ 26 января 2009

Вы должны взглянуть на библиотеку PHP OpenID Enablded (http://www.openidenabled.com/php-openid/).

Это должно прекрасно работать с любой установкой LAMP без необходимости использования Zend.

3 голосов
/ 26 января 2009

Zend_OpenId из Zend Framework

Zend_OpenId - это компонент Zend Framework, который предоставляет простой API для создания сайтов с поддержкой OpenID и поставщиков удостоверений.

1 голос
/ 27 января 2009

Пользователи Uservoice RPX http://rpxnow.com. Вы можете легко использовать его с PHP, просто https и проанализировать json или xml repsonse. Вам даже не нужно менять схему базы данных или хранить что-либо локально.

1 голос
/ 26 января 2009
0 голосов
/ 13 февраля 2013

я думаю, что это хорошее решение для вас шаг за шагом

1-download openid

2 - создайте файл с именем login.php примерно так (в том же каталоге или измените require_one на свой):

<?php
require_once 'openid.php';
$myopenid = new LightOpenID("your-domain.com");//no problem even if u can write http://localhost

if ($myopenid->mode) {
    if ($myopenid->mode == 'cancel') {
        echo "User has canceled authentication !";
    } elseif($myopenid->validate()) {
        $data = $myopenid->getAttributes();
        $email = $data['contact/email'];
        $first = $data['namePerson/first'];
        echo "Identity : $openid->identity <br>";
        echo "Email : $email <br>";
        echo "First name : $first";
    } else {
        echo "The user has not logged in";
    }
} else {
    echo "Go to index page to log in.";
}
?>

3-next о создании файла index.php:

<?php
require_once 'openid.php';
$openid = new LightOpenID("your-domain.com");//no problem even if u can write http://localhost

$openid->identity = 'https://www.google.com/accounts/o8/id';
$openid->required = array(
  'namePerson/first',
  'namePerson/last',
  'contact/email',
);
$openid->returnUrl = 'your-domain.com/login.php'
?>



<a href="<?php echo $openid->authUrl() ?>">Login with Google</a>

я почти забыл выйти из системы, вы можете убить сессию;

...