app/controllers/devise_token_auth/token_validations_controller.rb
# frozen_string_literal: true
module DeviseTokenAuth
class TokenValidationsController < DeviseTokenAuth::ApplicationController
skip_before_action :assert_is_devise_resource!, only: [:validate_token]
before_action :set_user_by_token, only: [:validate_token]
def validate_token
# @resource will have been set by set_user_by_token concern
if @resource
yield @resource if block_given?
render_validate_token_success
else
render_validate_token_error
end
end
protected
def render_validate_token_success
render json: {
success: true,
data: resource_data(resource_json: @resource.token_validation_response)
}
end
def render_validate_token_error
render_error(401, I18n.t('devise_token_auth.token_validations.invalid'))
end
end
end