Внедрение Social Login без участия третьих лиц с использованием openid-selector - PullRequest
14 голосов
/ 21 ноября 2011

Я посмотрел примерно 50 вопросов на этом сайте, но ни один из них не предоставляет решения, которое либо является актуальным, либо не требует плагина третьей части (я хочу контролировать информацию и не давать другим людям доступ к информации, которую я получаю), или это завершено. Я рискну опубликовать это и скрестить пальцы.

Я видел еще кучу, но вот некоторые, на которые я смотрел:

Так что я хочу, чтобы на моем сайте были Facebook, Google и Twitter для входа в систему (очевидно, что 80% людей предпочитают метод социального входа). Если я зайду на wiki.openid.net, какой пакет вы посоветуете мне использовать в PHP для простоты реализации? Какой из них вы использовали в прошлом?

Также, если возможно, можете ли вы дать объяснения о том, как реализовать рекомендованную библиотеку? то есть

  1. Я скачиваю, выкладываю на свой сайт,
  2. затем получите openID для моего сайта,
  3. , затем используйте http://code.google.com/p/openid-selector/ для отображение ...

Это правильно? Понятия не имею ...

По сути, пошаговое руководство было бы здорово. Я уверен, что любой, кто найдет время, чтобы ответить на это, получит огромные очки, это горячая тема.

Спасибо за помощь.

Ответы [ 3 ]

11 голосов
/ 29 ноября 2011

Таким образом, вы хотите реализовать вход в Google и Facebook / Twitter без использования сторонних сервисов. Это означает, что вам нужно реализовать OpenID логин (для Google) и OAuth (для Facebook / Twitter).

Первый OpenID. Вы можете скачать LightOpenID хороший легкий класс OpenID для PHP. Довольно легко реализовать. Некоторые примеры кода, как использовать этот класс.

// Set up your OpenID object
$openid = new LightOpenID('http://yourdomain.com');
$openid->returnUrl = 'http://yourdomain.com/after/login/user/goes/here';
$openid->identity = 'https://www.google.com/accounts/o8/id'; // OpenID provider URL
$openid->required = array('namePerson/friendly', 'contact/email');

// Step 1: Redirect the user to the OpenID provider
if (!$openid->mode) // If not authenticated
    header('Location: ' . $openid->authUrl()); // Redirect to provider

// Step 2: User returned, sign the user into our application
if ($openid->validate()) { 
    // OpenID authentication is successful
    // Sign in the user and read requested attributes
    $attrArray = $openid->getAttributes();
}

Это должно помочь вам начать с части OpenID. Селектор OpenID - это не более чем селектор для идентификационного URL.

Затем следует реализовать вход в систему OAuth для поддержки входа в Facebook и Twitter. Существует достаточно документации о том, как реализовать поддержку входа в Facebook и Twitter. Для Facebook вы должны прочитать сайт разработчика по аутентификации , это не слишком сложно. Твиттер использует тот же протокол и также имеет хорошую документацию по этой теме.

Если вы не хотите реализовывать это самостоятельно, взгляните на библиотеки OAuth, которые вы можете включить в свое приложение, например socialoauth (поддерживает оба) или twitteroauth (поддерживает twitter) , Google поможет вам найти гораздо больше таких библиотек.

Просто начните реализацию с библиотекой, прочитайте код, комментарии и документы и задайте вопросы по StackOverflow, если вы застряли. :)

0 голосов
/ 28 ноября 2013

Привет, также проверь этого провайдера социального входа OneAll. Это удивительно и легко в использовании. Поддерживает множество провайдеров. Вот ссылка http://www.oneall.com/

0 голосов
/ 30 сентября 2012

Этот HybirdAuth кажется еще более крутым:

Обратите внимание: http://hybridauth.sourceforge.net/

Лицензируется как под GPL, так и в MIT.Делитесь, если кто-нибудь из вас знает что-нибудь лучше.

...