2010-03-17 17 views
12

Jak mogę nadpisać/ustaw Authlogic korzystania z pola e-mail zamiast polu nazwy użytkownika zarówno rejestrację i uwierzytelniania, o login + e-mail jest czasami zbyt intensywne dla niektórych niektórych scenariuszach rejestracyjnychAuthlogic email jako nazwa użytkownika

Odpowiedz

11

Jeśli po prostu usuwasz kolumnę login i dodajesz kolumnę email, authlogic zajmie się resztą.

Zobacz ten przykład readme dla wszystkich opcjonalnych/wymaganych kolumn DB.

+12

magic !. Również znalazłem za pomocą tego również pracował: acts_as_authentic do | c | c.login_field =: email koniec – ADAM

+2

Potrzebowałem zalogować się za pomocą poczty e-mail, a następnie sprzedać nazwę użytkownika. Więc wolę komentarz komentarza ADAM. –

10

lepsza odpowiedź Spróbuj tego ... cóż, zaktualizuj authlogic gem, jeśli potrzebujesz!

user_session.rb

class UserSession < Authlogic::Session::Base 
    find_by_login_method :find_by_email #for example or you can make what ever method see exapmle 2 
end 

--- Przykład 2

user_session.rb

class UserSession < Authlogic::Session::Base 
    find_by_login_method :find_by_anything 
end 

user.rb

class User < ActiveRecord::Base 
    acts_as_authentic 

    def self.find_by_anything(login) 
    find_by_login(login) || find_by_email(login) || find_by_id(login) 
    end 
end 
+1

dzięki za odpowiedź amrnt! – ADAM

3

Komentarz Adama zawiera dobrą odpowiedź na to pytanie. Dodaj to do swojego modelu użytkownika:

class User < ActiveRecord::Base 
    acts_as_authentic do |c| c.login_field = :email end 
end