Ruby on rails rails请求中的JWT验证
我使用了身份验证服务 Json Web令牌 在我的Rails API中。 我想检查我的API得到的每个请求中的令牌是否有效 问题是,当我编写函数检查令牌在main中是否有效时 应用程序\u controller.rbRuby 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
文件它在引擎中不可见,并且我不能对我拥有的每个引擎执行任何操作。是否有任何方法可以验证我的应用程序在每个引擎中收到的每个请求中的令牌?您可以在
配置/初始值设定项下创建.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它应该放在主应用程序的配置文件夹下,虽然我相信你也可以把它放在任何安装的引擎下,只要稍加改变。我会更新我的答案