0

我有一个使用 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当登录的用户发布到这个操作时是 nil 呢?我的猜测是关于会话通过 SSL 工作的方式,但我不知道我在这里缺少什么......

4

1 回答 1

0

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

于 2012-11-03T01:13:39.833 回答