Ruby on Rails Придумайте, как изменить путь входа при сбое аутентификации? - PullRequest
5 голосов
/ 17 января 2011

Я недавно внедрил Devise в свое новое приложение вместе с Omniauth, однако я не уверен, как изменить путь входа по умолчанию в Devise, чтобы при вызове:

user_authenticated!

Он будет перенаправлен на страницу контроллера аутентификации.
Есть идеи как это сделать?

РЕДАКТИРОВАТЬ: Чтобы лучше объяснить мою проблему ->

То, что я хочу, - это когда пользователь пытается получить доступ к странице, требующей входа в систему, а затем отправляется пользователям / sign_in с помощью user_authenticated перед фильтром, однако я хочу, чтобы они были перенаправлены на /auth через user_authenticated! не пользователи / sign_in.

Ответы [ 2 ]

2 голосов
/ 17 января 2011

В вашем контроллере:

before_filter do
  authenticate_user! rescue redirect_to auth_url
end
1 голос
/ 17 января 2011

Не думаю, что я действительно понял вашу проблему, но для перенаправления на определенную страницу это должно быть реализацией

class ApplicationController < ActionController::Base
  private

  def after_sign_in_path_for(resource_or_scope)
    root_path
  end
end

, если вы хотите иметь другой URL для процесса sign_in в ваших маршрутах.rb

  devise_scope :user do
    get "sign_in", :to => "devise/sessions#new"
  end

и все остальное, что вам нужно на https://github.com/plataformatec/devise/wiki

надеюсь, что это полезно

...