Sha256: cf422c222e0554fba7a9c3954cb0dd871f17e40169671c9d6e31501e1a349ef3

Contents?: true

Size: 1.06 KB

Versions: 4

Compression:

Stored size: 1.06 KB

Contents

require 'active_support/concern'
require 'token_authenticate_me/concerns/controllers/sessionable'

module TokenAuthenticateMe
  module Concerns
    module Controllers
      module TokenSessionable
        extend ActiveSupport::Concern

        include Sessionable

        included do
          skip_before_action :authenticate, only: [:create]

          def create
            if authenticate_resource
              @session = create_session!(resource)
              render json: @session, status: 201
            else
              render json: { message: 'Bad credentials' }, status: 401
            end
          end

          def show
            @session = authenticated_session
            render json: @session
          end

          def destroy
            unauthenticate_resource

            head 204 # rails 5.2 styntax that renders a 204 status and no body
          rescue
            render_unauthorized
          end

          protected

          def session_params
            params.permit(:username, :password)
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
token_authenticate_me-0.11.2 lib/token_authenticate_me/concerns/controllers/token_sessionable.rb
token_authenticate_me-0.11.1 lib/token_authenticate_me/concerns/controllers/token_sessionable.rb
token_authenticate_me-0.11.0 lib/token_authenticate_me/concerns/controllers/token_sessionable.rb
token_authenticate_me-0.10.0 lib/token_authenticate_me/concerns/controllers/token_sessionable.rb