Я хочу, чтобы перенаправить обратно на текущую страницу после того, как OAuth зарегистрировались, и я последовал за this Devise wiki и сделал следующее:перенаправление на текущую страницу с помощью OmniAuth и разработать
def after_sign_in_path_for(resource)
sign_in_url = new_user_session_url
if request.referer == sign_in_url
super
else
request.env['omniauth.origin'] || stored_location_for(resource) || request.referer || root_path
end
end
request.env['omniauth.origin']
является http://www.bubutravel.com/users/sign_in
stored_location_for(resource)
равна нулю
request.referer
является http://openapi.qzone.qq.com/oauth/[omitted] (мой провайдер)
Итак, после моего входа в систему omniauth, я снова перенаправляюсь к URL-адресам провайдера.
Википедия устарела? Какой рекомендуемый способ сделать omniauth login перенаправлен на текущую страницу?
Сохраните мой день. Большое спасибо! – Cyrill
Ничего себе. Я провел недели, пытаясь понять, что это ... так просто. Спасибо! – Haymaker87
Небольшое уведомление: вы должны хранить местоположение только для запросов xhr, чтобы исключить неизвестное исключение маршрута: '' 'store_location_for (: user, request.url), если request.xhr?' '' – Darkside