OpenID Autologin Janrain Пример в php - PullRequest
       40

OpenID Autologin Janrain Пример в php

4 голосов
/ 09 сентября 2010

Я хочу, чтобы мой сайт автоматически определял, вошел ли пользователь в Google.Если они есть, он проверяет базу данных, чтобы увидеть, если они уже зарегистрированы.Если они зарегистрированы, он регистрирует их на моем сайте.В противном случае он перенаправляет их на страницу входа.

Я думаю, что это может быть экспериментальный сеанс x-has-session, но я понятия не имею, как его реализовать.Я использую библиотеку JanRain OpenID PHP.

Ответы оценены!

1 Ответ

1 голос
/ 09 сентября 2010

Я только что написал эту точную вещь, используя JanRain и Zend Framework, а также сделал это с Facebook.

  1. Вы должны создать обычную систему регистрации, которая использует имя пользователя, адрес электронной почты и пароль.И внедрите некоторую функциональность Stay Logged In в форму входа в систему, используя cookie для сохранения токена, а также обычную регистрацию на основе сеанса.
  2. Затем создайте ссылку для входа в Google, которая ссылается на скрипт, которыйразговаривает с https://www.google.com/accounts/o8/id с помощью JanRain OpenId.
  3. Из ответа, полученного от Google, вы можете получить их имя, фамилию и адрес электронной почты, используйте его для заполнения таблицы пользователей, как если бы вы работали с обычным зарегистрированным пользователем.Но в этом случае их имя пользователя и пароль будут NULL.Когда этот пользователь находится затем в таблице, настройте свой файл cookie «Оставаться в системе».
  4. Теперь, когда пользователь Google возвращается, они уже вошли в систему, используя обычную функцию «Оставаться в системе».
  5. Ваш выход из системыстраница должна очистить сеанс и удалить маркер cookie «Оставаться в системе».

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

...