当前用户不能跨一个控制器操作持久化

时间:2012-10-16 16:40:35

标签: ruby-on-rails session ssl controller sorcery

我有一个使用Sorcery进行身份验证的Rails 3.2.8应用程序。法术提供current_user方法,非常标准的东西。

我的应用程序有订阅,它们几乎以标准的资源方式工作。这是控制器的删节版本:

class SubscriptionsController < ApplicationController
  before_filter :require_login
  force_ssl

  def show
    @subscription = SubscriptionPresenter.new( current_user )
  end

  def create
    handler = StripeHandler.new( current_user )
    ...
  end

  def destroy
    handler = StripeHandler.new( current_user )
    ...
  end
end

#show操作正常,current_user加载。但是,现在#create不起作用,因为current_user在该操作中最终成为nil

那么,当登录用户发布此操作时,为什么current_user为零?我的猜测是关于会话在SSL上工作的方式,但我不知道我在这里缺少什么......

1 个答案:

答案 0 :(得分:0)

我想出来了。事实证明,我实际上在我正在与之交互的第三方库中获得了一个静默异常,并且该异常导致了一个“未经授权”的请求,该请求将用户注销。修补后发现我的控制器没有任何问题。感谢指点,所有。