使用 Devise after_sign_in_path_for 重定向循环

2023-11-23

我有一个菜鸟问题。我想要设计重定向到用户访问的最后一个页面。所以我做了以下...

def after_sign_in_path_for(resource)
    request.referer
end

效果很好...除非用户实际上通过原始表单登录,这会导致重定向循环。

I tried

def after_sign_in_path_for(resource)
   if (request.referer == "/users/sign_in")
  :pages_home
 else
  request.referer
 end

end

但这不起作用,很可能是因为我不知道 request.referer 在遇到原始用户登录页面(www.example.com/users/sign_in)时实际返回什么。

有任何想法吗?

太棒了;使用 devise,我想重定向到从(即 /blog/4)登录的页面,除非该页面是 /users/sign_in

SOLVED:

马丘说得对。 request.referer 也返回了域名......

http://example.com/users/sign_in

(注意:没有www前缀)

如果这是一种不安全或低效的方式,我仍然对 request.referer 的替代方案感兴趣。


不要重定向到引荐来源网址——这通常是一个坏主意。

相反,传递一个next查询字符串或表单数据中的值。也许使用类似的东西:

def after_sign_in_path_for(resource)
  params[:next] || super
end

当用户尝试访问需要身份验证的页面时(例如,/admin/posts/3/edit) 认证before_filter问题一个redirect_to new_session_url(:next => request.path)。然后编写登录操作和视图以保留:next查询字符串参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Devise after_sign_in_path_for 重定向循环 的相关文章

随机推荐

  • std::thread 导致 DLLMain 死锁

    所以 这就是我要说的 std 很复杂 在VS2013中这个简单的程序会导致死锁 include
  • 更改 Flexdashboard 中各个文本部分的字体大小

    我正在使用 flexdashboard 创建报告 并且我只想更改页面一部分的字体大小 我觉得我可以通过添加 CSS 类来做到这一点 但我找不到如何在 R markdown 代码中指定类名 有任何想法吗 您可以将 CSS 直接添加到 Rmar
  • hash_map是STL的一部分吗?

    简单的问题 hash map 是 STL 的一部分吗 The STL has hash map 但是 C 标准库does not Due to 一个常见的误解 您可能会将 C 标准库视为 STL 或者将 C 标准库的工具链实现的部分视为 S
  • Win 7 DllImport C# 奇怪的错误,对内存位置的访问无效?

    我正在使用 DllImport 从 C 应用程序访问 C dll 中的某些函数 该代码在我的开发笔记本电脑 Windows 7 64 位 上运行良好 dll 本身是 32 位 因此我以 32 位运行托管 dll 的进程 并且运行良好 但是
  • 将 QSlider 移动到鼠标点击位置

    我有一个 QSlider 当用户按下鼠标左键时 我想将其移动到鼠标光标的位置 我一直在四处寻找 但找不到任何最近可以解决我的问题的东西 这是我的滑块 我希望能够单击使滑块跳转到鼠标单击的位置 我可以拖动滑块 但我希望能够单击 我测试了单击
  • 日语 ASCII 代码

    在哪里可以获得与日语汉字 平假名和片假名字符对应的 ASCII 代码列表 我正在做一个java函数和Javascript来确定它是否是日语字符 它的ASCII码范围是多少 ASCII代表美国信息交换标准代码 仅包含 128 个字符 并非所有
  • 在 Eclipse 中重命名访问器/修改器方法?

    当他们获取 设置的变量被重构 gt 重命名 Eclipse 3 4 时 有什么方法可以自动重命名访问器 修改器 1 当您对变量选择 重构 gt 重命名 时 Eclipse 会提示您在 内联 框中输入新名称 在它的正下方 有一条帮助消息 旁边
  • 使用 setCompoundDrawables 进行 EditText 时计算图像大小

    当我添加如下图标时 etComment EditText findViewById R id et comment Drawable img getResources getDrawable R drawable warning etCom
  • 如何在Play Framework中定义任意任务? (如红宝石耙子)

    如何在Play Framework中定义任意任务 我的意思是任务从命令行运行 类似于 ruby rake 我知道 ant 工具 但正在寻找更好的替代方案 对于 Play 2 您可以按照此处的文档使用 SBT 创建新任务 http www s
  • 我可以在不使用 HTTPS 连接的情况下使用 SSL 证书吗?

    我有点困惑 如果 SSL 证书有助于识别您已连接到受信任的服务器 那么为什么需要使用加密 HTTPS 连接呢 我可以使用 SSL 证书进行 HTTP 连接吗 这里有一个误解 证书不是 SSL 使用证书的是SSL 但证书是在SSL之前诞生的
  • 沿弧线对 UIView 进行动画处理

    我希望沿着图中所示的弧线对视图进行动画处理 从位置 1 到位置 2 实际发生的情况是 视图动画描述的是一个完整的圆而不是圆弧 我的问题是 我应该使用CGPath添加弧 or CGPath添加圆弧到点 我需要使用吗CGPath移动到点是否描述
  • RESTful删除策略

    假设我有一个资源 在调用删除时可以有两种不同的行为 资源被删除 资源被移至回收站 如何以符合 REST 的方式对其进行建模 我想到了以下解决方案 DELETE myresource 将资源移至回收站 默认行为 DELETE myresour
  • 检查 PowerShell 中每行的第一个字符是否有特定值

    我正在读取包含特定格式数字的文本文件 我想弄清楚该行的第一个字符是 6 还是 4 并将整行存储在数组中以供以后使用 因此 如果该行以 6 开头 则将整行添加到 SixArray 中 如果该行以 4 开头 则将整行添加到 fourArray
  • 核心运动错误102是什么意思?

    我使用 Core Motion 的传感器融合来获取北向运动更新 motionManager startDeviceMotionUpdatesUsingReferenceFrame CMAttitudeReferenceFrameXTrueN
  • 如何将 openssl 添加到 swift 项目

    我正在学习如何向我的 iOS OSX 项目添加应用内购买收据验证 有一个很好的概述hereWWDC14 有关于这个主题的精彩视频 示例代码很多 但每个人都跳过一步 如何导入 openSSL 标头 swift 编译器抱怨没有这样的模块 imp
  • 在一个 SQL 查询中合并两个表并使日期值唯一

    我有以下两个表 您也可以在 SQL fiddle 中找到它们here CREATE TABLE Inbound Inbound Date DATE Product TEXT InboundType TEXT Quantity VARCHAR
  • 对于每个 int x: x+1 > x .... 这总是正确的吗?

    我刚刚开始在学校学习 C 我正在努力掌握基本概念 我们的作业有一个问题 对于每一个int x x 1 gt x 判断正确与否 正确则给出推理 错误则给出反例 我很困惑 因为我们被告知 int 类型是 32 位 这基本上意味着整数是二进制格式
  • iOS 8.3 Xcode 6.3.1 中未调用核心位置委托方法

    我试图使用 Xcode 6 3 1 中的核心位置框架获取用户的当前位置 我做了以下事情 Added 核心位置框架 under Target gt General gt 链接的框架和库 My 视图控制器 h文件如下图所示 import
  • 使用ajax通过POST向php传递多个参数

    我正在尝试使用 AJAX 通过 POST 方法将多个参数传递到我的 PHP 文件 以便我可以对 MySQL 数据库进行查询 HTML 文件 div class dropdown dropdown dark div
  • 使用 Devise after_sign_in_path_for 重定向循环

    我有一个菜鸟问题 我想要设计重定向到用户访问的最后一个页面 所以我做了以下 def after sign in path for resource request referer end 效果很好 除非用户实际上通过原始表单登录 这会导致重