Devise - 如果帐户未确认,则重定向到页面

2024-01-12

如果用户的帐户尚未得到确认,我会尝试重定向用户。所以这涉及到两部分代码:

  1. 首次创建帐户后重定向用户
  2. 如果他们在确认帐户之前尝试登录,请重定向他们

我需要第二个方面的帮助。

我首先能够通过放入after_inactive_sign_up_path_for(resource)在我的自定义 RegistrationsController 中。我尝试对 SessionsController 执行相同的操作,但没有成功。如果用户尚未确认帐户,我需要重写什么才能正确重定向用户?


您可能需要创建自定义 Warden 策略并检查帐户是否需要确认。类似这样的事情:

# config/initializers/my_strategy.rb
Warden::Strategies.add(:my_strategy) do 
  def valid? 
    true
  end 

  def authenticate! 
    u = User.find_for_authentication(:email => params[:email])
    if u.nil? || !u.valid_password?(params[:password])
      fail(:invalid)
    elsif !u.confirmed?
      fail!("Account needs confirmation.")
      redirect!("your_root_url")
    end
  else
    success!(u)
  end    
end

#config/initializers/devise.rb
config.warden do |manager|  
  manager.default_strategies(:scope => :user).unshift :my_strategy
end

这假设用户名和密码作为参数在请求中传递。你可以看看数据库_可验证策略 https://github.com/plataformatec/devise/blob/master/lib/devise/strategies/database_authenticatable.rb有关 Devise 默认情况下如何处理登录身份验证的示例。

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

Devise - 如果帐户未确认,则重定向到页面 的相关文章

随机推荐

  • 有理由使用 is 与 as 吗? [复制]

    这个问题在这里已经有答案了 当考虑is versus as在 C 中 您可以使用任一类型来确认一种类型是否可以转换为另一种类型 using is Employee e new Manager if e is Manager var m Ma
  • JBoss EAP 6 配置单个服务器以在域模式下进行远程调试

    我有域控制器 一个主机控制器和一台服务器在同一台计算机上运行 我正在使用 IDEA 连接到远程服务器进行调试 但即使它正在运行代码 它也不会在断点处停止 我已经通过系统输出进行了验证 我已启用HOST CONTROLLER JAVA OPT
  • Electron js Electron builder mac 构建在运行时打开空白屏幕,而在使用 npm start 运行时在开发中完美运行

    我已经在 Windows 和 ubuntu 中创建了内置应用程序 该应用程序运行正常 但是当在 mac 中构建时 构建已成功创建 但它只显示白色空白屏幕 没有渲染 html 页面 而当使用 npm start 运行时 它运行得很好 我只有
  • 检查变量是否为整数[重复]

    这个问题在这里已经有答案了 如何检查变量是否为整数 如果您需要这样做 请执行 isinstance
  • React Native导入包仅在Android上

    我正在尝试仅在 Android 上导入一个包 这里是任何人都知道这是否可能的包 import ProcessingManager from react native video processing 你有两种方法 第一种方式 您可以通过创建
  • SerialDevice.FromIdAsync() 产生一个空串行端口

    当尝试连接到串行端口时 我的代码发生了一些奇怪的情况 使用时系列样品 https developer microsoft com en us windows iot win10 samples serialsample 一切正常 第一次尝试
  • 电平与边缘触发网络事件机制

    对于边缘或电平触发的某些网络事件机制 即 epoll poll select 意味着什么 简而言之 边缘触发意味着只有在检测到事件时您才会收到通知 从概念上讲 事件发生在瞬间 而电平触发意味着每当事件存在时您就会收到通知 这将是真实的 一段
  • AbortController.abort(reason),但是reason在到达fetch catch子句之前就丢失了

    我正在实施可中止的获取调用 https developer mozilla org en US docs Web API AbortController abort 中止我的页面上的提取基本上有两个原因 用户决定不再等待 AJAX 数据并单
  • mysql 连接一列中的多个值

    我需要进行一个查询 创建来自 2 个表的 3 列 这些表具有以下关系 表 1 的列 ID 与表 2 的列 ID2 相关 在表 1 中有一个名为 user 的列 在表 2 中有一个名为名称的列 可以有 1 个唯一用户 但可以有多个与该用户关联
  • ngram 的 dict 函数

    我有这样的文字 library dplyr glimpse text chr 1 11 Welcome to Wikipedia bla Discover Ekopedia the practical encyclopedia about
  • MKPolylineRenderer 上的两条彩色/自定义线

    我正在画 x 条线MKMapView 数据是从网络服务下载的 对于每条需要绘制的线 我正在创建一个MKPolyline 将其添加到overlayArray 某些叠加层有多个折线 最后通过以下方式将该叠加层添加到地图中 self mapVie
  • .Value = "" 和 .ClearContents 之间有什么区别?

    如果我运行以下代码 Sub Test 1 Cells 1 1 ClearContents Cells 2 1 Value End Sub 当我使用公式检查 Cells 1 1 和 Cells 2 1 时ISBLANK 两个结果都返回TRUE
  • 指定的解决方案配置“最新|任何 CPU”无效

    我在 Jenkins 中运行的 MSBuild 脚本遇到此错误 C
  • 将 HTML 导出到 Excel 的单元格背景颜色

    我正在尝试将 HTML 表导出到 Excel 但我无法通过 CSS 设置单元格的背景颜色 我尝试过 Response Write 但这对我的输出没有影响 单元格颜色是否有一些 mso css 属性 尝试使用类似的东西
  • 在 Android 中编写许多 HTTP 请求的良好设计模式

    在我的应用程序中 我有很多 GET POST PUT 请求 现在 我有一个单例类来保存我下载的数据 并且有许多扩展 AsyncTask 的内部类 在我的单例类中 我还有一些这样的接口 Handlers for notifying liste
  • IMagick 检查图像亮度

    我需要能够在图像内自动写入一些文本 根据图像亮度 脚本必须用白色或黑色书写 那么如何使用 Imagick 检查图像的亮度 暗度呢 你可以这样做 Load the image imagick new Imagick image jpg con
  • Django/Python:了解 super 在函数中的使用方式

    我刚刚开始思考什么super以及它是如何在 Django 中基于视图的类中实现的 我试图了解 super 在以下代码中是如何工作的 有人可以尝试为我一点一点地分解它吗 from django views generic detail imp
  • Bash 忽略特定命令的错误

    我正在使用以下选项 set o pipefail set e 在 bash 脚本中 出现错误时停止执行 我有大约 100 行脚本正在执行 我不想检查脚本中每一行的返回代码 但对于一个特定的命令 我想忽略该错误 我怎样才能做到这一点 解决方案
  • 从 SearchView 更改片段提交又名级联到后台堆栈

    我目前正在使用SearchView对象 以便为我的应用程序提供建议输入的功能 然而 这个小部件在提交时使用intent filter开始您的搜索 当我的应用程序在手机上运行时 这非常棒 因为我想做的是启动搜索结果Activity显示响应 H
  • Devise - 如果帐户未确认,则重定向到页面

    如果用户的帐户尚未得到确认 我会尝试重定向用户 所以这涉及到两部分代码 首次创建帐户后重定向用户 如果他们在确认帐户之前尝试登录 请重定向他们 我需要第二个方面的帮助 我首先能够通过放入after inactive sign up path