Как мне перенаправить devise / omniauth на страницу, с которой я выполнил вход? - PullRequest
3 голосов
/ 18 июня 2011

У меня есть аутентификация через omniauth, и эта ссылка доступна на каждой странице через layout / application.html.haml.

Однако, когда они завершают аутентификацию omniauth, они все переходят в root.

Как я могу настроить его так, чтобы они перенаправляли на фактическую страницу, с которой они нажимали ссылку аутентификации (которая приводит их к провайдеру oauth).

Спасибо

Ответы [ 2 ]

10 голосов
/ 27 июля 2012

Вы можете использовать request.env['omniauth.origin'].

См. https://github.com/intridea/omniauth/wiki/Saving-User-Location

4 голосов
/ 18 июня 2011

Здесь я вижу два варианта:

1) Установите переменную сеанса на каждой странице, через которую вы можете войти, например:

session[:return_to] = request.fullpath

и перенаправить обратно после входа в систему:

redirect_to session[:return_to]

или

2) попробуйте

redirect_to :back

Это зависит от того, как вы связываете действия своего контроллера (не работало с omniauth, поэтому у меня нет опыта в этом отношении)

...