2010-12-15 312 views
2

Je viens d'ajouter SSL sur secure.mydomain.com. Quand quelqu'un se connecte, il POST d'un formulaire sur le sous-domaine principal (www) au sous-domaine sécurisé. Cela provoque une erreur InvalidAuthenticityToken à générer.InvalidAuthenticityToken entre sous-domaines lors de la connexion avec l'application Rails

J'ai lu qu'il est nécessaire de partager des données de session entre sous-domaines. Pour ce faire, j'ai déjà ajouté:

config.action_controller.session = { :domain => '.mydomain.com' } 

à config/environments/production.rb. Malheureusement, cela n'a pas réglé le problème.

Merci pour toute aide!

Répondre

3

Rails 3, si c'est ce que vous utilisez, vous veut faire ce changement config/initializers/session_store.rb.

Rails.application.config.session_store :cookie_store, { 
    :key => '[my key]', 
    :domain => '.example.com' 
} 

Essayez-le. Si les choses ne fonctionnent toujours pas comme prévu, inspectez le cookie dans le navigateur pour voir s'il possède des paramètres de domaine spéciaux. Ça va aider à réduire que ce soit le réglage ou obtenir c'est la question:/

+0

travaillé. Merci. – Michael

+1

Pour différents domaines pour différents environnements, comme 'lvh.me' pour' development', vous pouvez utiliser quelque chose comme: 'domain: { production: '.example.com', développement: '.example.dev' } .fetch (Rails.env.to_sym,: all) ' –

0

Comment avez-vous récemment effectué ce changement? Votre navigateur pourrait toujours avoir les anciens cookies, qui devraient être supprimés avant de remarquer un changement de comportement.

Juste throwin it out there :)

+0

je franchis les cookies ... – Michael

+0

Am I définir l'option de domaine correctement? Heroku, mais pas webrick, me dit que c'est déprécié. – Michael

+0

@Michael: quelle version de Rails est-ce? – Matchu

0

Je pense que cette ligne est manquante dans votre mise en page de l'application

<%= csrf_meta_tags %>