【发布时间】:2015-09-04 23:59:11
【问题描述】:
这个 Rails 项目有一个 API 端,用于将数据发送到应用程序的 iOS 版本。它使用 Devise::Lockable 在用户登录失败 3 次时锁定用户帐户。
这是一个奇怪的边缘情况,但可能并不少见:这种情况始于已经登录到桌面版本。如果我在 iOS 应用中登录失败 /em> 3 次,然后点击我的电子邮件中的重置密码链接从桌面版本,因为我已经登录,对 edit_password_url 的请求未授权(因为帐户被锁定)我被重定向到登录页面。
有什么方法可以让它在保留参数(特别是密码重置令牌)的同时仍然转到 edit_password_url?我也在想:
- 跳过验证密码编辑页面(看起来很糟糕,但我仍然没有看到如何执行此操作)
- 创建一系列过滤器来检查请求然后重定向回来 到edit_password_url ...但是我如何保留该重置密码 令牌?
- 或者,我可以以某种方式强制退出用户 应用程序在该用户通过 API 登录失败的过程中的某处。但是这些是命名空间并在不同的控制器下,我还没有找到一种方法来强制注销。
【问题讨论】:
标签: ruby-on-rails authentication devise params