Comments 16
github.com/binarylogic/authlogic/tree/master — посмотрите еще на этот плагин, он мне кажется более вкусным, чем restful_authentication
Какой-то он уж очень навороченный. ИМХО, нифига не KISS. restful_authentication мне больше нравится — простой как 3 рубля.
Не скажите. Authlogic очень гибок, умеет все что нужно. При этом не захламляется модель и не нужно подключать кучу либ. Кстати, в нем есть специальная фича для переезда с restful на него.
наоборот, у authlogic логика лучше инкапсулирована. Код моделей занимает буквально 5 строчек:
плюс обычнейшие rest-контроллеры для юзера и сессии
class User < ActiveRecord::Base acts_as_authentic :transition_from_crypto_provider => [Md5CryptoProvider, VbulletinCryptoProvider] end class UserSession < Authlogic::Session::Base end
плюс обычнейшие rest-контроллеры для юзера и сессии
railsforum.com/viewtopic.php?pid=74245#p74245
отличный пост на ту же тему, где подробно расписано как настроить restful_authentication, и как добавить к нему роли и openId.
отличный пост на ту же тему, где подробно расписано как настроить restful_authentication, и как добавить к нему роли и openId.
UFO just landed and posted this here
Я с рельсами пока на «Вы», пользуясь случаем попрошу Вас пояснить конструкцию
Еще один вопрос. У меня сейчас возможности скачать плагин и посмотреть нет, а листинг регистрации вы не стали приводить; как хранятся пароли в БД? Какое-то шифрование предусмотрено, или надо доделывать самостоятельно?
u && u.authenticated?(password)? u: nil. :)
Еще один вопрос. У меня сейчас возможности скачать плагин и посмотреть нет, а листинг регистрации вы не стали приводить; как хранятся пароли в БД? Какое-то шифрование предусмотрено, или надо доделывать самостоятельно?
u = find_by_login(login.downcase) # need to get the salt
u && u.authenticated?(password)? u: nil
u => Пользователь найден по логину. (если логин не правильный то find_by_login вернет nil и u == nil)
u.authenticated?(password) => проверяется корректность пароля. Метод этот примешивается в модель User где то здесь:
include Authentication
include Authentication::ByPassword
include Authentication::ByCookieToken
А "? :" это тернарный оператор. В случае если логин и пароль правильный возвращаем пользователя с этим логином и паролем, иначе возвращаем nil. (в Ruby return не обязательно ставить, возвращается результат последней операции)
Пароли храняться в виде хеша и salt. Шифруются SHA1 алгоритмом
u && u.authenticated?(password)? u: nil
u => Пользователь найден по логину. (если логин не правильный то find_by_login вернет nil и u == nil)
u.authenticated?(password) => проверяется корректность пароля. Метод этот примешивается в модель User где то здесь:
include Authentication
include Authentication::ByPassword
include Authentication::ByCookieToken
А "? :" это тернарный оператор. В случае если логин и пароль правильный возвращаем пользователя с этим логином и паролем, иначе возвращаем nil. (в Ruby return не обязательно ставить, возвращается результат последней операции)
Пароли храняться в виде хеша и salt. Шифруются SHA1 алгоритмом
Одна неприятная особенность все же есть: если юзер не залогинен, то current_user вернет false (немного раньше, помню, вообще был :false). ИМХО плохо, лучше было бы, чтобы метод отдавал nil в таком печальном случае.
ЗЫ причина у такого костыля на самом деле есть, но… удобство превыше всего
ЗЫ2 плагин неплохой, особенно после допиливания по себя ;)
ЗЫ причина у такого костыля на самом деле есть, но… удобство превыше всего
ЗЫ2 плагин неплохой, особенно после допиливания по себя ;)
Тонкости при включенной опции активации через e-mail:
dn-live.blogspot.com/2009/08/ruby-on-rails-restful-authentication.html
dn-live.blogspot.com/2009/08/ruby-on-rails-restful-authentication.html
Sign up to leave a comment.
Авторизация в Ruby on Rails с помощью плагина restful-authentication