Я хотел бы опубликовать свое приложение для выбранной группы лиц для частного бета-тестирования. Я создал субдомен для этой задачи: beta.company.com.
Приложение работает, как и ожидалось, на моей рабочей станции, но когда я отправляю его на сервер, приложение постоянно перенаправляется на страницу аутентификации. К вашему сведению, я использую декларативную авторизацию, authlogic и Passenger.
routes.rb:
#Application controller
match "/not_authorized", :to => "application#not_authorized", :as => :not_authorized
#UserSessions controller
match "/quit", :to => "user_sessions#destroy", :as => :quit
match "/authenticate", :to => "user_sessions#new", :as => :authenticate
resources :user_sessions, :only => :create
#Users controller
match "/enroll", :to => "users#new", :as => :enroll
# root url
root :to => "users#index"
Симптомы:
- анонимные маршруты (например, user_sessions # create, not_authorized) работают как положено для anon. Пользователь
- приложение работает должным образом на моей рабочей станции
Когда я смотрю на файл production.log, я вижу запись вроде:
Обработка UsersController # index как HTML
В доступе отказано: не найдено соответствующих правил для индекса # @role_symbols = [: guest]> (role [: guest], привилегии [: index,: read,: manage], context: users).
Перенаправлено на http://beta.company.com/authenticate
** редактировать **
Во-первых, отсутствует действие индекса UsersController #, и если бы оно было, анонимный пользователь не имел бы к нему доступа. Я запутался в том, почему он вообще пытается там маршрутизировать (вместо корневого URL, куда он должен идти после успешной аутентификации).
Это похоже на проблему маршрутизации для конкретного домена, но я не уверен.
перечитайте эту «ошибку» более внимательно. существует действие индекса UserController # И анонимный пользователь НЕ должен иметь к нему доступ. на первый взгляд мне показалось, что он прочитал UserSessionController # index, то есть несуществующее действие.
теперь создается впечатление, что аутентифицированный пользователь не создается и не сохраняется и, следовательно, перенаправляется обратно на новое действие UserSession # (путь аутентификации AKA).
** / редактировать **
** редактировать II **
Я изменил с cookie_store на active_record_store:
# cookie store
# MyApp::Application.config.session_store :cookie_store, :key => '_myApp_session'
# active-record store
MyApp::Application.config.session_store :active_record_store
Добавлена таблица ($ rake db: session: create), выполнена миграция ($ rake db: migrate), перезапущен Apache ($ touch tmp / restart.txt), очищен кэш браузера, затем перезапущен браузер.
Сессия была успешно добавлена в таблицу сеансов, но я все еще получаю проблему.
** / редактировать II **
Мысли высоко ценятся.