전자 메일 주소와 선택적 암호 및 이름을 제공하는 경량급 사용자를 제공하는 두 가지 사용자 클래스가 있습니다. 경량의 사용자가 브라우저를 닫은 후에도 내 사이트로 돌아 가면 이름이 자동으로 기억되어 경량 권한으로 자동 로그인해야합니다. 해당 이름이 고유하지 않을 수 있으므로 사용자 ID를 기반으로 간단한 사용자에게 서명하고 싶습니다. 의 devise.rb 이니셜 라이저에서레일 4 : devise를 사용하여 user_id를 기반으로 사용자를 인증하는 방법
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
def password_required?
false
end
def email_required?
false
end
def remember_me
true
end
:
내가 고안를 사용하고 있습니다. (경량 사용자는 나중에 자신의 이메일 주소를 추가하여 전체 사용자가 될 수 있습니다), 그리고 내 user.rb 파일 포함 나는
config.authentication_keys = [ :user_id ]
설정을 시도했지만 그것은 이메일 주소가있는 사용자에 대한 인증을 위반 이외의 다른 영향을주지 않았다.
config.authentication_keys = [: email]를 사용하면 브라우저를 다시 시작하거나 세션 쿠키가 삭제 되더라도 이메일 주소를 제공 한 사용자는 사이트에 성공적으로 로그인됩니다. 그러나 브라우저를 다시 시작하면 이름이있는 사용자를 돌려 보내는 것을 잊어 버릴 수 있습니다. 두 경우 모두 remember_user_token 쿠키가 있습니다.
https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in-using-their-username-or-email-address을 보면, Devise의 find_for_database_authentication 메소드를 덮어 써야 할 수도 있습니다.하지만 그걸 넣어야할지, 아니면 충분할 지 모르겠습니다. 나는 성공하지 않고 그 변화를 시도했다.
전자 메일 인증을 원하지 않는다면 괜찮을 것입니다. 그러나 약간 변경되면서'user_id', 사용자'id' 대신 위키의 기사를 보시면 도움이 될 것입니다. https : //github.com/plataformatec/devise/wiki/How-To : -Allow-users-to-sign-in-their-username-or-email-address- – kurenn
감사합니다. Kurenn. user [space] id에 대해 정확히 무엇을 의미하는지 확신 할 수 없습니까? 나는 첨부 된 것을 보았습니다, 그것은 제가 다른 연구에 관해 언급하고있는 것이 었습니다. 그리고 그것은 도움이되지만 그것은 저를 저쪽으로 끌어 들이지 못했습니다. – Will