Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails请求中的JWT验证_Ruby On Rails_Security_Jwt_Rails Engines - Fatal编程技术网

Ruby on rails rails请求中的JWT验证

Ruby on rails rails请求中的JWT验证,ruby-on-rails,security,jwt,rails-engines,Ruby On Rails,Security,Jwt,Rails Engines,我使用了身份验证服务 Json Web令牌 在我的Rails API中。 我想检查我的API得到的每个请求中的令牌是否有效 问题是,当我编写函数检查令牌在main中是否有效时 应用程序\u controller.rb 文件它在引擎中不可见,并且我不能对我拥有的每个引擎执行任何操作。是否有任何方法可以验证我的应用程序在每个引擎中收到的每个请求中的令牌?您可以在配置/初始值设定项下创建.rb文件 class ActionController::Base before_action :valida

我使用了身份验证服务

Json Web令牌

在我的Rails API中。 我想检查我的API得到的每个请求中的令牌是否有效

问题是,当我编写函数检查令牌在main中是否有效时

应用程序\u controller.rb


文件它在引擎中不可见,并且我不能对我拥有的每个引擎执行任何操作。是否有任何方法可以验证我的应用程序在每个引擎中收到的每个请求中的令牌?

您可以在
配置/初始值设定项下创建
.rb
文件

class ActionController::Base
  before_action :validate_jwt_token

  def validate_jwt_token
    # validate jwt token
  end
end
这将确保在所有安装的引擎中的每个请求上执行
验证\u jwt\u令牌

编辑:

您还可以将此代码放在Api引擎或Umg的
engine.rb

module Api
  class Engine < ::Rails::Engine
    #...

    initializer 'api.jwt_token_validation_helper' do
      ActionController::Base.send :include, Api::JwtTokenValidationHelper
    end
  end
end

module Api
  module JwtTokenValidationHelper
    extend ActiveSupport::Concern

    include do
      before_action :validate_jwt_token

      def validate_jwt_token
        puts 'your code here'
      end
    end
  end
end
模块Api
类引擎<::Rails::引擎
#...
初始值设定项“api.jwt\u令牌\u验证\u帮助程序”是否
ActionController::Base.send:include,Api::JwtTokenValidationHelper
结束
结束
结束
模块Api
模块JwtTokenValidationHelper
扩展ActiveSupport::关注点
包括做
在\u操作之前:验证\u jwt\u令牌
def验证jwt令牌
将“你的代码放在这里”
结束
结束
结束
结束

谢谢你的回答,但我还有一个问题,我有两个引擎,Api和Umg,Umg安装在Api上,我应该把action_controller.rb文件放在哪里,在Api引擎的配置文件夹内还是在主配置文件夹外?@ditojanelize它应该放在主应用程序的配置文件夹下,虽然我相信你也可以把它放在任何安装的引擎下,只要稍加改变。我会更新我的答案