0

J'essaie de partager la session entre sous-domaines, mais je ne pouvais pas.Développer le partage de session entre sous-domaines

J'ai suivi ce Devise config, mais cela n'a pas fonctionné.

Voici comment mes /etc/hosts ressemble:

127.0.0.1  localhost 
127.0.0.1  apedraza.bejoy.local 
127.0.0.1  bejoy.local 
127.0.1.1  augusto-Lenovo-G580 
127.0.0.1  api.the_genesis.com 

# The following lines are desirable for IPv6 capable hosts 
::1  ip6-localhost ip6-loopback 
fe00::0 ip6-localnet 
ff00::0 ip6-mcastprefix 
ff02::1 ip6-allnodes 
ff02::2 ip6-allrouters 

et mes config/initializers/session_store.rb

Rails.application.config.session_store :cookie_store, key: '_bejoy_session', domain: ".bejoy.local" 

Dans mon bejoy.local: 5000/users/sign_in, j'ai créé un compte (avec sous-domaine apedraza) et il redirige vers apedraza.bejoy.local: 5000/admin, mais que les routes redirige vers apedraza.bejoy.local: 5000/users/sign_in, c'est parce que la session ne peut être trouvée.

J'ai l'application rails dans un conteneur Docker, donc je ne sais pas si cela pourrait être un problème.

Répondre

0

Merci @iashraf pour votre réponse.

Je l'avais déjà essayé, mais cela n'a pas fonctionné pour moi.

Cependant, après avoir créé un nouveau projet de rails à partir de zéro, j'ai pu voir que la configuration était correcte.

Ainsi, grâce à cela, je trouve que le problème était autre endroit: Je récrire le contrôleur d'enregistrement pour génie, je foirer parce que j'utilisé un redirect à un sous-domaine sur le bloc super.

Enfin, j'ai supprimé la redirection du bloc super et j'ai mis le chemin d'accès url_path sur le after_sign_up_path_for, et cela a fonctionné!

1

Essayez:

config/initializers/session_store.rb

Rails.application.config.session_store :cookie_store, key: '_bejoy_session', domain: :all 

Note dans la ligne ci-dessus: domain: :all

(Ne pas oublier de redémarrer rails et supprimer vos cookies)

+0

Êtes-vous certain de cette réponse? Sinon, cela aurait dû être un commentaire. –