Domanda

Vorrei pubblicare la mia applicazione a un set selezionato di individui per una beta privata. Ho creato un sottodominio per questa attività: beta.company.com.

L'applicazione funziona come previsto sulla mia workstation, ma quando la spingo sul server, l'applicazione ritorna continuamente alla pagina di autenticazione. Cordiali saluti, sto usando l'autorizzazione dichiarativa, l'authlogic e il passeggero.

percorsi.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"

Sintomi:

  • Le rotte anonime (ad esempio user_session#create, not_autorized) funzionano come previsto per Anon. utente
  • L'applicazione funziona come previsto sulla mia workstation

Quando guardo la produzione.log, vedo una voce come:

Elaborazione tramite Usersontroller # indice come autorizzazione HTML Negata: nessuna regole di corrispondenza trovata per l'indice per # @role_symbols = [: ospite]> (ruoli [: ospite], privilegi [: indice ,: leggi], contesto: utenti). Reindirizzato a http://beta.company.com/authenicate

** modificare **

Per uno, non esiste un'azione per indice dicontroller#per utenti e, se ci fosse, l'utente anonimo non avrebbe accesso ad esso. Sono confuso sul perché sta cercando di instradare lì (invece dell'URL radice, che è dove dovrebbe andare dopo un'autenticazione di successo).

Questo sembra un problema di routing specifico per il sub-dominio, ma non posso esserne sicuro.

Rileggi questo "errore" più da vicino. Esiste un'azione indice UserController#e l'utente anonimo non dovrebbe avere accesso ad esso. A prima vista, ho pensato che leggesse UsersessionController#Index, che è l'azione che non esiste.

Ora, sembra che l'utente autenticato non venga creato o salvato e, di conseguenza, viene reindirizzato alla nuova azione degli utenti#(AKA AUTUnETION PATH).

** / modificare **

** EDIT II **

Sono cambiato da cookie_store a 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

Aggiunta la tabella ($ rake db: sessioni: create), ha fatto la migrazione ($ rake db: migrate), riavviato apache ($ touch tmp/riavvio.txt), ha cancellato la cache del browser, quindi ha riavviato il browser.

La sessione è stata aggiunta alla tabella delle sessioni correttamente, ma ho ancora il problema.

** / EDIT II **

I pensieri sono molto apprezzati.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top