在RegistrationsController中调用sign_in后,后续请求在require_current_user过滤器上获得403

时间:2014-03-06 17:45:54

标签: ruby-on-rails devise

我在json API Rails应用上工作并使用Devise身份验证。

在创建用户后的RegistrationsController#create中,我致电sign_in(resource_name, resource)。正如我在Firebug中看到的那样,API服务器返回带有加密会话数据的cookie _app_session

def create
  sign_out
  build_resource

  if resource.save
    sign_in resource_name, resource

    hash = {
      :last_profile => resource.last_profile,
      :settings     => current_user.owner_hash
    } # it contains actual values for not nil current_user

    render json: hash  
  else
    clean_up_passwords(resource)
    render status: 403, json: resource.errors
  end
end      

然后在后续API请求require_current_user过滤器触发器上,尽管我在请求中看到了相同的Cookie。

class ApplicationController < ActionController::Base
  def require_current_user
    return if current_user
    render :status => 403, :text => I18n.t("errors.messages.login_required")
  end
  # ...
end

有什么问题?

0 个答案:

没有答案