Проверка JWT в запросах рельсов - PullRequest
0 голосов
/ 22 октября 2018

У меня есть служба аутентификации, использующая

Json Web Token

в моем Rails API.Я хочу проверять, является ли токен действительным в каждом запросе, который получает мой API.

Проблема заключается в том, что когда я пишу функцию, которая проверяет, является ли токен действительным в main

application_controller.rb

файл не виден в движках, и я не могу сделать before_action для каждого движка, который у меня есть.есть ли способ проверить токен в каждом запросе, который мое приложение получает в каждом движке?

1 Ответ

0 голосов
/ 22 октября 2018

Вы можете создать файл .rb в config/initializers

class ActionController::Base
  before_action :validate_jwt_token

  def validate_jwt_token
    # validate jwt token
  end
end

. Это обеспечит выполнение validate_jwt_token при каждом запросе среди всех установленных двигателей.

Редактировать:

Вы также можете поместить этот код в движок Api или Umg's 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...