Sha256: 0b277d2dbc162d6676c6995892a7dd08aa7da0cb682b2646c90d22de2e896807

Contents?: true

Size: 877 Bytes

Versions: 5

Compression:

Stored size: 877 Bytes

Contents

require "jwt"

class Card
  module Auth
    # methods for setting current account
    module ApiKey
      def signin_with token: nil, api_key: nil
        if token
          signin_with_token token
        elsif api_key
          signin_with_api_key api_key
        else
          signin_with_session
        end
      end

      # set the current user based on api_key
      def signin_with_api_key api_key
        account = find_account_by_api_key api_key
        unless account&.authenticate_api_key api_key
          raise Card::Error::PermissionDenied, "API key authentication failed"
        end

        signin account.left_id
      end

      # find +\*account card by +\*api card
      # @param api_key [String]
      # @return [+*account card, nil]
      def find_account_by_api_key api_key
        find_account_by :api_key, api_key.strip
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
card-mod-api_key-0.13.4 lib/card/auth/api_key.rb
card-mod-api_key-0.13.3 lib/card/auth/api_key.rb
card-mod-api_key-0.13.2 lib/card/auth/api_key.rb
card-mod-api_key-0.13.1 lib/card/auth/api_key.rb
card-mod-api_key-0.13.0 lib/card/auth/api_key.rb