Question

Je voudrais publier ma demande à un ensemble sélectionné de personnes pour une version bêta privée. J'ai créé un sous-domaine pour cette tâche: beta.company.com.

L'application fonctionne comme prévu sur mon poste de travail, mais lorsque je le pousse vers le serveur, l'application est en permanente en continu vers la page d'authentification. Pour info, j'utilise une autorisation déclarative, Authlogic et passager.

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"

Les symptômes:

  • Les routes anonymes (par exemple User_Sessions # créent, not_authorized) fonctionnent comme prévu pour anon. utilisateur
  • L'application fonctionne comme prévu sur mon poste de travail

Quand je regarde la production.log, je vois une entrée comme:

Traitement par UsersController # Index en tant qu'autorisation HTML refusée: Aucune règle de correspondance trouvée pour l'index pour # @ROLE_SYMBOLS = [: invité]> (Rôles [: invité], privilèges [: index ,: read ,: great], contexte: utilisateurs). Redirigé vers http://beta.company.com/authenticate

** Éditer **

D'une part, il n'y a pas d'action USERSCONTROLLER # Index, et s'il y en avait, l'utilisateur anonyme n'y aurait pas accès. Je suis confus pour pourquoi il essaie d'y arriver du tout (au lieu de l'URL racine, où il devrait aller après une authentification réussie).

Cela semble être un problème de routage spécifique au sous-domaine, mais je ne peux pas en être sûr.

Relisez de plus près cette «erreur». Il y a une action d'index UserController # et l'utilisateur anonyme ne devrait pas y avoir accès. À première vue, j'ai pensé qu'il lisait USERSESSESSESTROLLER # Index, qui est l'action qui n'existe pas.

Maintenant, il semble que l'utilisateur authentifié ne soit pas créé ou enregistré et, par conséquent, est réécouté à Usesersession # New Action (AKA Authenticate Path).

** / Éditer **

** Modifier II **

J'ai changé de cookie_store en 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

Ajout du tableau ($ Rake DB: Sessions: Create), a fait la migration ($ Rake DB: migrate), redémarré Apache ($ touch tmp / restart.txt), a effacé le cache du navigateur, puis a redémarré le navigateur.

La session a été ajoutée au tableau des sessions avec succès, mais j'obtiens toujours le problème.

** / modifier II **

Les pensées sont grandement appréciées.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top