Ruby on rails Rails动态控制器身份验证(设计&x2B;Cookie或令牌&x2B;头)

Ruby on rails Rails动态控制器身份验证(设计&x2B;Cookie或令牌&x2B;头),ruby-on-rails,ruby,authentication,cookies,devise,Ruby On Rails,Ruby,Authentication,Cookies,Devise,所以 我目前有两个rails控制器:一个用于设计身份验证,另一个用于令牌身份验证。我正在尝试创建一个新的控制器,该控制器可用于在存在cookie时使用designe身份验证,或在不存在cookie时使用头进行令牌身份验证 我的直觉是让我的新控制器有两个变量,每种类型的身份验证控制器各一个,并使用before\u action或before\u filter来检查cookie并将请求转发给正确的控制器 请注意,我的设计验证控制器在\u操作之前有一个:验证\u用户和我的令牌身份验证控制器在\u操作之

所以

我目前有两个rails控制器:一个用于设计身份验证,另一个用于令牌身份验证。我正在尝试创建一个新的控制器,该控制器可用于在存在cookie时使用designe身份验证,或在不存在cookie时使用头进行令牌身份验证

我的直觉是让我的新控制器有两个变量,每种类型的身份验证控制器各一个,并使用
before\u action
before\u filter
来检查cookie并将请求转发给正确的控制器

请注意,我的设计验证控制器在\u操作之前有一个
:验证\u用户
和我的令牌身份验证控制器在\u操作之前有一个
:使用\u头进行身份验证,\u,但我只希望根据命中我的API的方式调用1


对于如何在对现有控制器进行最小更改的情况下优雅地实现这一点,我非常感谢

如果
authenticate\u using\u headers
返回
nil
false
如果身份验证失败,您可以在
应用程序\u控制器中执行此操作

def authenticate_token_or_user!
  authenticate_using_headers || authenticate_user!
end
然后在要同时启用这两个功能的控制器中:

before_filter :authenticate_token_or_user!