【问题标题】:Rails Dynamic Controller Authentication (Devise + Cookie or Token + Headers)Rails 动态控制器身份验证(设计 + Cookie 或令牌 + 标头)
【发布时间】:2017-07-07 19:00:24
【问题描述】:

所以...

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

我的直觉是让我的新控制器有 2 个变量,每种类型的身份验证控制器一个,并使用 before_actionbefore_filter 来检查 cookie 并将请求转发到正确的控制器。

请注意,我的设计身份验证控制器有一个before_action :authenticate_user!,而我的令牌身份验证控制器有一个before_action :authenticate_using_headers,但我只希望调用 1,具体取决于我的 API 被命中的方式。

任何关于我如何通过对现有控制器进行最小更改而优雅地实现这一点的见解都值得赞赏。

【问题讨论】:

    标签: ruby-on-rails ruby authentication cookies devise


    【解决方案1】:

    如果authenticate_using_headers 返回nilfalse 如果身份验证失败,您可以在application_controller 中执行此操作

    def authenticate_token_or_user!
      authenticate_using_headers || authenticate_user!
    end
    

    然后在你想要同时启用的控制器中:

    before_filter :authenticate_token_or_user!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 2017-10-02
      • 2015-02-11
      • 1970-01-01
      • 2020-11-17
      • 2023-03-09
      • 1970-01-01
      相关资源
      最近更新 更多