设计 - 我将什么控制器放在before_filter:skip_trackable中?

时间:2013-07-22 16:12:17

标签: ruby-on-rails devise

我正在尝试使用设备通过api登录。来自文档:

  

如果您使用带有API的令牌身份验证并使用可跟踪的身份验证。   一切        请求将被视为新的登录(因为没有会话        蜜蜂)。您可以通过创建前置过滤器来禁用此功能,如下所示:

   before_filter :skip_trackable

   def skip_trackable
     request.env['devise.skip_trackable'] = true
   end

在过滤之前我应该​​把这个方法放在哪里? sessions_controller,users_controller?

使用此删除可跟踪进行常规网络登录/注册?

谢谢!

1 个答案:

答案 0 :(得分:3)

您将其添加到需要身份验证的控制器。我建议为所有要扩展的API控制器创建一个基本控制器。

确保在authenticate_user之前调用skip_trackable。

class Api::BaseController < ApplicationController
  before_filter :skip_trackable
  before_filter :authenticate_user!
  respond_to :json

  def skip_trackable
    request.env['devise.skip_trackable'] = true
  end
end