Sha256: 91a741eaacb178a8d7dcbc44ecd40fd75a11490a6e1fdc8be52d2a1a2b20ba32

Contents?: true

Size: 1.08 KB

Versions: 8

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

module DeviseJwtAuth
  # Controller that handles sending refresh tokens.
  class RefreshTokenController < DeviseJwtAuth::ApplicationController
    before_action :set_user_by_refresh_token

    def show
      if @resource
        yield @resource if block_given?
        render_refresh_token_success
      else
        render_refresh_token_error
      end
    end

    protected

    def resource_data
      response_data = @resource.as_json
      response_data['type'] = @resource.class.name.parameterize if json_api?
      response_data
    end

    def render_refresh_token_success
      response_data = {
        status: 'success',
        data: resource_data
      }

      response_data.merge!(@resource.create_named_token_pair) if active_for_authentication?

      render json: response_data
    end

    def render_refresh_token_error
      render_error(401, I18n.t('devise_jwt_auth.token_validations.invalid'))
    end

    def active_for_authentication?
      !@resource.respond_to?(:active_for_authentication?) || @resource.active_for_authentication?
    end
  end
end

Version data entries

8 entries across 8 versions & 3 rubygems

Version Path
devise_jwt_auth722-0.1.7 app/controllers/devise_jwt_auth/refresh_token_controller.rb
devise_jwt_auth7-0.1.7 app/controllers/devise_jwt_auth/refresh_token_controller.rb
devise_jwt_auth-0.4.1 app/controllers/devise_jwt_auth/refresh_token_controller.rb
devise_jwt_auth-0.4.0 app/controllers/devise_jwt_auth/refresh_token_controller.rb
devise_jwt_auth-0.3.0 app/controllers/devise_jwt_auth/refresh_token_controller.rb
devise_jwt_auth-0.2.0 app/controllers/devise_jwt_auth/refresh_token_controller.rb
devise_jwt_auth-0.1.7 app/controllers/devise_jwt_auth/refresh_token_controller.rb
devise_jwt_auth-0.1.6 app/controllers/devise_jwt_auth/refresh_token_controller.rb