Почему разработчик и администратор не входят в систему пользователя - PullRequest
0 голосов
/ 13 февраля 2012

Вот мой контроллер создания сеанса пользователя, через который проходит вход в систему

# 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")

Как это может войти в систему кто угодно ... Я не настолько знакомпридумать, и я пытаюсь войти в систему, и я знаю, что в БД есть активный пользователь, но я не могу войти в систему и смотреть на строку warden.authenticate смущает меня, потому что она не передает адрес электронной почты и пароль ... любая помощь будетздорово помочь мне понять, что происходит при аутентификации

1 Ответ

0 голосов
/ 13 февраля 2012

Существует файл инициализатора warden, который запускается как промежуточное ПО, которое выбирает правильные параметры при использовании с devise ...

Взгляните на драгоценный камень стража , чтобы понять, как он работает полностью.

Лично я считаю, что devise очень быстро встает на пути, и вы, возможно, лучше поймете, как все это работает, если «сверните» свою собственную систему аутентификации.

...