加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails Devise – current_user为零

发布时间:2020-12-16 23:01:17 所属栏目:百科 来源:网络整理
导读:由于某些原因,current_user在我的无模型控制器(订阅)中返回nil.我没有在互联网上找到任何理由来证明这种行为… class SubscriptionsController ApplicationController def new ... end def create current_user # returns nil endend 我有一个csrf元标记: m
由于某些原因,current_user在我的无模型控制器(订阅)中返回nil.我没有在互联网上找到任何理由来证明这种行为…
class SubscriptionsController < ApplicationController  
  def new
    ...
  end

  def create
    current_user    # returns nil
  end
end

我有一个csrf元标记:

<meta content="xxx" name="csrf-token">

我可以提供更多的代码,但我不知道什么是有用的.

UPDATE

所以感谢评论/答案,我已经将问题明确指出了一个特定的行动:创建.

如果我将@user = current_user添加到新的内容中,我可以在我的新视图中显示当前用户的电子邮件.但是,在我的创建控制器中,current_user返回nil.

我通过表单(提交)访问了创建操作.

在表单提交之前,我验证输入,然后发送一个请求到条纹,以获取一个令牌离开表单.如果没有错误(验证和条带),我然后发送表单.

可能是原因吗?

更新2

在我的错误消息中,我的会话转储是空的,而它应该包含current_user信息…

解决方法

原来我所做的AJAX请求没有携带CSRF令牌.因此,Rails正在杀死我的会话.

我添加了skip_before_filter:verify_authenticity_token在我的SubscriptionsController中,它现在正在工作.这可能不是最安全的解决方案,但它现在可以工作,所以我稍后会继续开发并回到这个问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读