Настройка маршрутов в devise при использовании только omniauth для аутентификации

Я создал приложение, которое позволяет пользователю проходить аутентификацию в Active Directory с помощью omniauth-ldap. Если это новый пользователь, то при успешной аутентификации для него создается пользователь на основе информации, полученной из AD. Если пользователь уже существует, он просто входит в систему. Пользователи не регистрируются в приложении, они просто входят в систему с учетными данными AD. И я никогда не хочу, чтобы пользователь входил в систему с учетными данными базы данных.

Я не могу понять, как избавиться от некоторых маршрутов или изменить их. Например, если пользователь посещает /sign_in, он получает аутентификацию базы данных. А если пользователь посещает sign_up, он попадает на страницу для регистрации на сайте. Я бы хотел, чтобы пользователи, которые посещают /sign_in, попадали на страницу входа LDAP, которая находится по адресу /users/auth/ldap. Я думаю, что мне нужно сделать пользовательский маршрут, но я не уверен, на какой контроллер мне нужно направить пользователя. И я хочу, чтобы страница регистрации полностью исчезла.

Сейчас у меня есть ссылка, которая позволяет пользователям войти в систему с помощью ldap, и путь для этого - user_omniauth_authorize_path(:ldap). Я просто не уверен, как перевести это в то, что поймет мой файл config/routes.rb. Вот что у меня сейчас в routes.

   devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }  do  
      get 'sign_in', :to => 'devise/sessions#new', :as => :new_user_session
      get 'sign_out', :to => 'devise/sessions#destroy', :as => :destroy_user_session
  end 

Когда я запускаю rake routes, я не вижу никакого маршрута для user_omniauth_authorize_path, что, как я предполагаю, связано с тем, что этот маршрут генерируется devise. Поэтому я думаю, что мне нужно, чтобы мои маршруты указывали на контроллер devise, но я не могу найти правильный путь.

6
задан Kevin Thompson 21 December 2011 в 22:12
поделиться