Эта ошибка неожиданно началась на производственном сервере.
На локальном все отлично работает.
Я использую собственную архитектуру на основе токенов аутентификации.
authenticate_user - это функция, которая проверяет, аутентифицирован ли текущий пользователь или нет.
I, [2018-04-28T07:20:53.095743 #1063] INFO -- : [af1e0a7c-41c9-4082-965a-
3327aae9fd99] Processing by Api::V1::AnalysisController#analysis as JSON
I, [2018-04-28T07:20:53.095838 #1063] INFO -- : [af1e0a7c-41c9-4082-965a-
3327aae9fd99] Parameters: {"customer_id"=>""}
I, [2018-04-28T07:20:53.098717 #1063] INFO -- : [af1e0a7c-41c9-4082-965a-
3327aae9fd99] [active_model_serializers] Rendered
ActiveModel::Serializer::Null with Hash (0.18ms)
I, [2018-04-28T07:20:53.098997 #1063] INFO -- : [af1e0a7c-41c9-4082-965a-
3327aae9fd99] Filter chain halted as :authenticate_user rendered or
redirected
I, [2018-04-28T07:20:53.099120 #1063] INFO -- : [af1e0a7c-41c9-4082-965a-
3327aae9fd99] Completed 401 Unauthorized in 3ms (Views: 2.8ms)
Он работает на разностном сервере, который я запускаю.
Единственные различия между ними: 1. Я использую пользовательские исключения для обработки ошибок. и спасая их от контролеров.
2. Метод Authenitcate_user выполняет рендеринг напрямую без каких-либо исключений.
3. Ранее authenitcate_user был вызван перед некоторым методом. Теперь нет единственного поля для этого.
Аутентифицируемый модуль:
def authenticate_user
if current_user
true
else
render json: 'some error', status: 404
end
end
def current_user
@user = User.find_by(auth_token: request.headers['Authorization']) if request.headers['Authorization'].present?
@user if @user && @user.token_expiry > Time.now
end
Контроллер:
class Api::V1::AnalysisController < ApplicationController
include Authenticable
before_action :authenticate_user