Devise:突然无法登录了

2023-12-26

我正在使用 Devise 1.3.4 对我的应用程序中的后端进行身份验证。 我已经连续几天无法登录了。 发生的情况是:

  • 我进入登录页面 /admin/sign_in
  • 使用良好的凭据登录
  • 在日志中看到登录成功(last_sign_in_at、current_sign_in_at 和 current_sign_in_ip 已设置,sign_in_count 增加)
  • 设计会话控制器尝试将我转发到我在应用程序控制器中指定的 after_sign_in_path_for (Admin::DashboardsController#show)
  • 然后突然再次呈现登录页面。没有重定向,什么也没有。

我检查了before_filters,它肯定是Devise的autorize_admin_user!导致问题的过滤器(调用之前的过滤器,不调用之后的过滤器)。这意味着即使登录成功后它也不会识别我已登录。

我意识到,如果没有看到我的大部分代码,就很难想出解决方案。 所以我的第一个问题是:

我该如何调试这个错误? 我怎样才能准确地追踪到登录不起作用的地方?我必须深入了解典狱长吗? 这可能是会话/cookie 问题吗?我该如何调试呢?

所有想法表示赞赏!

日志是这样写的:

Started GET "/admin/sign_in" for 127.0.0.1 at 2011-05-20 13:49:11 +0200
[Barista] Compiling all scripts for barista
[Barista] Compiling all coffeescripts
  Processing by Admin::SessionsController#new as HTML
Rendered admin/shared/_header.html.haml (3.1ms)
Rendered admin/shared/_menu.html.haml (1.7ms)
Rendered admin/sessions/new.html.haml within layouts/admin (128.7ms)
Completed 200 OK in 171ms (Views: 133.0ms | ActiveRecord: 0.0ms)


Started POST "/admin/sign_in" for 127.0.0.1 at 2011-05-20 13:49:15 +0200
[Barista] Compiling all scripts for barista
[Barista] Compiling all coffeescripts
  Processing by Admin::SessionsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"VLjjo6W+sd7yRH3SRSNpUN3L8a+OaOgCUpJgB5VaGEM=", "admin_user"=>{"email"=>"[email protected] /cdn-cgi/l/email-protection", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign in"}
  AdminUser Load (0.7ms)  SELECT `admin_users`.* FROM `admin_users` WHERE `admin_users`.`email` = '[email protected] /cdn-cgi/l/email-protection' LIMIT 1
  SQL (0.2ms)  BEGIN
  AREL (0.3ms)  UPDATE `admin_users` SET `last_sign_in_at` = '2011-05-20 11:49:15', `current_sign_in_at` = '2011-05-20 11:49:15', `current_sign_in_ip` = '127.0.0.1', `sign_in_count` = 3, `updated_at` = '2011-05-20 11:49:15' WHERE `admin_users`.`id` = 33
  SQL (0.5ms)  COMMIT
Redirected to http://myapp.dev/admin
Completed 302 Found in 160ms


Started GET "/admin" for 127.0.0.1 at 2011-05-20 13:49:15 +0200
[Barista] Compiling all scripts for barista
[Barista] Compiling all coffeescripts
  Processing by Admin::DashboardsController#show as HTML
Completed   in 26ms


Started GET "/admin/sign_in" for 127.0.0.1 at 2011-05-20 13:49:16 +0200
[Barista] Compiling all scripts for barista
[Barista] Compiling all coffeescripts
  Processing by Admin::SessionsController#new as HTML
Rendered admin/shared/_header.html.haml (3.5ms)
Rendered admin/shared/_menu.html.haml (2.0ms)
Rendered admin/sessions/new.html.haml within layouts/admin (134.9ms)
Completed 200 OK in 182ms (Views: 139.2ms | ActiveRecord: 0.0ms)

我最近也遇到了类似的问题,那是因为我玩了会话cookie。我已经使用了域并将其设置为 :domain => :all 在“initializers/session_store.rb”中。由于此登录在开发环境中停止工作。

如果您对 session_store.rb 进行了任何更改,那么您可能需要恢复这些更改并查看是否再次开始工作。如果是这种情况,那么您可以根据环境定义会话存储:

if Rails.env.production?  
  Appname::Application.config.session_store :cookie_store, {:key => '_cookie_name', :domain => :all}  
else  
  Appname::Application.config.session_store :cookie_store, :key => '_cookie_name'  
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Devise:突然无法登录了 的相关文章

随机推荐

  • MySQL 5.6 中的全局查询超时

    我需要在我的应用程序中在全局级别应用查询超时 查询 SET SESSION max execution time 1MySQL 5 7 就是这样做的 我使用的是MySQL 5 6 目前无法升级 任何使用 SQL Alchemy 的解决方案也
  • jSpinner时间选择器模型编辑

    我有 jSpinner 用于时间选择 问题一 用户可以编辑小时分钟和秒分隔符 并可以写入额外的数字 例如 123 问题2 模型始终获取当前时间 我想要 00 00 00 当我在代码中编写此内容而不是 hh mm ss 时 用户无法编辑这些值
  • Hibernate 4 -> 5 迁移:NamingStrategy 更改,找不到表

    我想做的事 我正在尝试从 WildFly 8 2 0 迁移到 WildFly 10 0 0 这意味着我已经 并且想要 从 Hibernate 4 3 迁移到 Hibernate 5 0 Setup Java 8u40 Spring 4 1
  • WPF ListView 关闭选择

    是否可以关闭WPF的选择ListView 那么当用户单击行时 该行不会突出显示 source konim5am at artax karlin mff cuni cz https artax karlin mff cuni cz 7Ekon
  • .NET:可执行文件应该进行强名称签名吗?私有 DLL 怎么样?

    我的应用程序由三个程序集组成 一个引用几个 DLL 的 EXE 这些 DLL 是我的应用程序私有的 它们仅由该可执行文件使用 应该给这些程序集起一个响亮的名字吗 FxCop 建议他们应该 对于目前生产的所有组件 CA2210 使用强名称密钥
  • Visual Studio 2015 OpenMP 支持

    我在 Visual Studio 2015 中获取 OpenMP 支持时遇到问题 我已经将项目选项配置为使用 openmp 项目 gt 属性 gt C C gt 语言 gt OpenMP支持 是 代码如下 非常简单的代码 用于测试OpenM
  • 仅打印字符串中的第一个字段

    我有一个约会12 12 2013 14 32我想将其转换为仅12 12 2013 该字符串可以是1 1 2013 12 32 or 1 10 2013 23 41我只需要日期部分 您可以使用各种 Unix 工具轻松完成此操作 cut d f
  • 将 ul 嵌套在 ol 中

    我试图创建一个有序列表 其中包含两个项目 每个列表下包含三个项目 其中有项目符号点 我的代码未通过验证 因为它表示在此上下文中不允许元素 ul 作为元素 ol 的子元素 但我到处都看到它说这没问题 这是我的代码 ol li First nu
  • 链接器输入文件未使用,因为链接未完成 - gcc

    我是编写 makefile 的初学者 我有一个类似这样的 makefile PATH1 ref CC gcc LINK gcc INCLUDES INCLUDES I PATH1 inc I PATH1 abc inc I PATH1 de
  • Modernizr 如何做边框半径

    你能帮我解释一下吗Modernizr 如果我使用某个功能 例如 border radius 我使用旧版浏览器运行它 现代化者是否会自动将 css 添加到页面 或者我应该编写代码来呈现控件以使其看起来像有边框一样 如果第二种情况属实 那么我为
  • 如何验证历史数据?

    目前 我们正在使用日历实例读取日期 以便使用 SparkSQL 选取最后一个月的记录 现在我们需要 如果在前一天添加额外的事件 我们还必须能够手动插入摘要开始和结束日期 以防我们需要手动重新运行之前时间段的作业 例如 手动重新运行表可能如下
  • HTML5 和 RDFa 支持

    我即将向现有的 HTML5 Web 应用程序引入开放图谱协议 并且我希望包含必要的 RDFa 数据 而不引入任何不必要的杂项 我看过HTML RDFa 1 1 http www w3 org TR rdfa in html 草稿并与Face
  • CSS 中内嵌的 SVG 图像

    这是一个基本的 SVG 图像悬停动画 有没有一种编码方法可以避免编写 SVG 代码两次 body background color 181818 a webkit transition all 3s ease moz transition
  • Pandas Concat 遇到内存错误

    我正在尝试预处理数据以进行进一步分析 首先 我从 csv 文件 x 中读取数据 然后我把它分成三个部分 最后我需要使用转换一个数组get dummies concat and sum的结果groupby import pandas as p
  • Android 中的静音流

    我构建了一个小应用程序 可以使用该类将音乐流静音 取消静音AudioManager 事实上 它一直有效 直到我关闭应用程序 即 我已将流静音 关闭应用程序 重新启动应用程序 并且按钮不再取消流静音 我在网上搜索过 但似乎没有人遇到过这个问题
  • 我应该使用哪种分层模型?邻接、嵌套还是枚举?

    我有一个表 其中包含世界上所有地理位置及其关系的位置 这是一个显示层次结构的示例 您将看到数据实际上存储为所有三个 枚举路径 邻接表 嵌套集 数据显然也永远不会改变 以下是英国布莱顿地点的直系祖先的示例 该地点的 woeid 为 13911
  • 使用 PDO 处理错误的最佳实践

    Problem 寻找使用 PDO 进行错误处理的最佳实践 我在网站 SO 书籍等上找到的选项 许多网站表示您应该在您的catch block SO 上的大量用户表示 由于安全风险 您永远不应该回显错误消息 其他人建议将其记录到文档根目录之外
  • 从 R 中用户定义的语料库中删除停用词

    我有一组文件 documents c She had toast for breakfast The coffee this morning was excellent For lunch let s all have pancakes L
  • 在 C# 中每行读取一个字符串行[重复]

    这个问题在这里已经有答案了 可能的重复 在 net中以换行符分割字符串的最简单方法 https stackoverflow com questions 1547476 easiest way to split a string on new
  • Devise:突然无法登录了

    我正在使用 Devise 1 3 4 对我的应用程序中的后端进行身份验证 我已经连续几天无法登录了 发生的情况是 我进入登录页面 admin sign in 使用良好的凭据登录 在日志中看到登录成功 last sign in at curr