Comment puis-je me connecter à un utilisateur en dédouanement à partir d'un routeur personnalisé?

StackOverflow https://stackoverflow.com/questions/9451474

Question

J'ajoute OmniAuth à mon application où j'utilise l'autorisation pour l'authentification régulière. Je suis tombé sur un mur en essayant de connecter un utilisateur de manière programmatique.

Je cherche quelque chose comme sign_in_and_redirect De Disge, mais je ne le trouve pas dans l'autorisation.

J'ai essayé d'utiliser sign_in <User> et appel redirect_to root_path juste après. Cependant, lorsque la page racine se charge, le current_user n'est pas défini.

Est-ce que quelqu'un sait comment faire ça? Est-ce que quelqu'un connaît un tutoriel pour ajouter Omniauth à l'autorisation?

Merci

Était-ce utile?

La solution

Je n'ai pas utilisé de dédouanement, je lance généralement ma propre authentification ou j'utilise Devise, mais un regard rapide à travers le code me dit que Sign_in (@user) ne fait rien de plus que set @ current_user = @ utilisateur, vous avez donc besoin d'un moyen de persister ces informations avant de rediriger. L'autorisation semble utiliser un Remember_Token pour cela, donc j'essaierais (non testé) quelque chose comme ceci:

sign_in(@user)
cookies['remember_token'] = @user.remember_token
redirect_to(root_path)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top