我有一个使用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上工作的方式,但我不知道我在这里缺少什么......
答案 0 :(得分:0)
我想出来了。事实证明,我实际上在我正在与之交互的第三方库中获得了一个静默异常,并且该异常导致了一个“未经授权”的请求,该请求将用户注销。修补后发现我的控制器没有任何问题。感谢指点,所有。