2010-09-09 2 views
4

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

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

Ответы appriciated!

+0

Мне удалось выяснить это. Я отвечу на статью в блоге и ссылку на сайт в реальном времени, когда это будет сделано :) – 2011-02-03 17:41:03

+0

@rob, я пробовал это в течение большей части дня, но не нашел ответа, любой шанс, который вы могли бы указать мне в правильном направлении? – 2011-02-03 17:41:11

+0

Здесь вы можете найти полный пример с полным исходным кодом. http://goo.gl/QyP7D приветствует – 2011-09-18 01:58:10

ответ

1

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

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

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