将Devise Login的返回URL指定为查询字符串参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Devise Login的返回URL指定为查询字符串参数相关的知识,希望对你有一定的参考价值。
Ruby on Rails,使用Devise进行身份验证。我知道Devise包含开箱即用的深层链接,但它要求用户首先导航到需要进行身份验证的URL。
这个用例不符合我的需求,我想知道是否有提供查询字符串参数的选项,以便在登录后将用户重定向到当前页面。登录为页面添加功能,但不是不需要。
答案
你可以扩展qazxsw poi以满足你的需要。如果您查看qazxsw poi,设备使用Devise::SessionsController
将用户重定向到成功登录后的特定路径。
假设您拥有的资源是source code
在您的qazxsw poi中,指定设备应使用的路由器:
after_sign_in_path_for
然后在User
中创建一个继承自routes.rb
并覆盖devise_for :users, controllers: {sessions: 'sessions'}
的控制器:
app/controllers/sessions_controller
在新的会话表单(Devise::SessionsController
)中,添加一个隐藏的标记,将after_sign_in_path_for
param中继到控制器:
class SessionsController < Devise::SessionsController
protected
def after_sign_in_path_for(resource)
params[:redirect_path].presence || stored_location_for(resource)
end
end
现在,如果用户访问app/views/devise/sessions/new.html.erb
,则应在成功登录后将其重定向到所需的路径。
以上是关于将Devise Login的返回URL指定为查询字符串参数的主要内容,如果未能解决你的问题,请参考以下文章