0

ログインが通過するユーザーセッションコントローラーの作成アクションは次のとおりです

# POST /resource/sign_in
def create
  resource = User.find_by_email(params[:user][:email])  
  # check for inactive
  redirect_to(new_user_session_path, :notice => 'Invalid Email Address or Password.') and return if resource.try(:active) == false
  # check to see if user is AD user
  if ad_resource?(resource) 
    if !ActiveDirectory.new.authenticate!(params[:user][:email], params[:user][:password])
      redirect_to new_user_session_path, :notice => 'Invalid Email Address or Password.'
      return
    end
  else
    resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
  end

  set_flash_message :notice, :signed_in
  sign_in_and_redirect(resource_name, resource)
end

この行

    resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")

どうすれば誰でもログインできますか...私は考案するのに慣れておらず、ログインしようとしています.dbにアクティブなユーザーがいることは知っていますが、ログインできず、warden.authenticate行を見ると混乱します.電子メールとパスワードを渡さない...認証で何が起こっているのかを理解するのに役立つ助けがあれば幸いです

4

1 に答える 1

0

デバイスで使用すると正しいパラメーターを取得するミドルウェアとして実行されるウォーデン初期化ファイルがあります...

Warden gemを見て、それがどのように機能するかを完全に理解してください。

個人的には、デバイスが非常に早く邪魔になることがわかりました。独自の認証システムを「ロール」すると、すべてがどのように機能するかをよりよく理解できるかもしれません。

于 2012-02-13T14:25:47.297 に答える