1

我正在尝试使用 devise 通过 api 登录工作。从文档中:

如果您使用带有 API 的令牌身份验证并使用 trackable。每个请求都将被视为一次新的登录(因为 API 中没有会话)。您可以通过创建一个 before 过滤器来禁用它,如下所示:

   before_filter :skip_trackable

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

我应该把这个方法和过滤器放在哪里?session_controller,users_controller?

将使用此删除可跟踪进行常规 Web 登录/注册吗?

谢谢!

4

1 回答 1

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
于 2013-07-24T04:34:18.420 回答