authlogic openid функция auto_register пытается дублировать регистрацию - PullRequest
3 голосов
/ 16 сентября 2009

Я пытаюсь включить аутентификацию openid на своем веб-сайте, а также использовать auto_register функцию последней надстройки authlogic_openid.

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

Все реализовано в учебном пособии по authlogic / authlogic openid, за исключением модели пользовательского сеанса с новым вызовом auto_register:

class UserSession < Authlogic::Session::Base
  auto_register
end 

Любая помощь высоко ценится!

Ответы [ 2 ]

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

Кажется, вы регистрируете пользователей дважды. Плагин OpenID не знает, зарегистрирован ли пользователь или нет, он просто делает SREG каждый раз, если auto_register имеет значение true. Вместо того, чтобы звонить auto_register каждый раз, когда вы можете найти пользователя с помощью openid_identifier и отправить auto_register(true), если он новый пользователь.

0 голосов
/ 19 ноября 2009

Я нашел http://github.com/gaizka/authlogic_openid

Его версия расширения Authlogic Open ID, похоже, работает с функцией auto_register ... хотя я не могу заставить его правильно захватывать электронные письма из SREG (работает с обычной регистрацией).

Здесь есть демонстрационная версия:

http://big -glow-mama.heroku.com /

http://github.com/holden/authlogic_openid_selector_example/tree/with-facebook/

...