2017-05-09 2 views
0

Je construis une application de rails et j'ai réussi à mettre en œuvre l'authentification unique Okta en utilisant la gemme 'concevoir' et la gemme 'devise_saml_authenticable'. Tout fonctionne très bien et je suis en mesure de se connecter avec succès dans l'application en utilisant mon compte Okta.Okta coincé dans une boucle sans fin si aucun compte d'utilisateur dans l'application

Le seul problème auquel je suis confronté est que si un utilisateur se connecte avec un compte Okta, mais pas de compte dans l'application, Otka entre dans une boucle de redirection sans fin. Comment procéder pour rediriger l'utilisateur vers un message d'erreur de connexion ou une page à la place?

+0

Partagez votre model..are Utilisez-vous des callbacks? Partagez l'erreur exacte. –

+0

Tout code que vous pouvez partager serait utile. –

Répondre

2

En fait, j'ai découvert la raison du problème. C'est parce que, par défaut, Devise vous redirigera vers la page de connexion (http://localhost:3000/users/sign_in) si l'utilisateur n'a pas réussi à s'authentifier (c'est-à-dire, erreur 401). Si l'utilisateur est connecté à Okta, lorsqu'il est redirigé vers le chemin d'accès sign_in, il tente à nouveau d'effectuer l'authentification Okta, ce qui entraîne une boucle sans fin.

Pour résoudre ce problème que je devais changer la redirection par défaut de génie, selon les instructions de ce wiki: https://github.com/plataformatec/devise/wiki/How-To%3a-Redirect-to-a-specific-page-when-the-user-can-not-be-authenticated