class Apiphobic::Requests::AuthorizationToken
Constants
- BASE64_PATTERN
- BASE64_TOKEN_HEADER_PATTERN
- BASE64_TOKEN_PARAM_NAME
- BASE64_TOKEN_PARAM_PATTERN
- JSON_WEB_TOKEN_HEADER_PATTERN
- JSON_WEB_TOKEN_PARAM_NAME
- JSON_WEB_TOKEN_PARAM_PATTERN
- JSON_WEB_TOKEN_PATTERN
Attributes
private_key[RW]
request[RW]
type[RW]
Public Class Methods
new(request, private_key:, type:)
click to toggle source
# File lib/apiphobic/requests/authorization_token.rb, line 26 def initialize(request, private_key:, type:) self.request = request self.private_key = private_key self.type = type end
Public Instance Methods
fetch()
click to toggle source
# File lib/apiphobic/requests/authorization_token.rb, line 35 def fetch if !token_from_header.blank? && token_from_params.blank? token_from_header elsif !token_from_params.blank? token_from_params else token_from_header end end
Private Instance Methods
base64_token_from_header()
click to toggle source
# File lib/apiphobic/requests/authorization_token.rb, line 71 def base64_token_from_header raw_authorization_header[BASE64_TOKEN_HEADER_PATTERN, 1] end
base64_token_from_params()
click to toggle source
# File lib/apiphobic/requests/authorization_token.rb, line 75 def base64_token_from_params if request.respond_to?(:params) request.params[BASE64_TOKEN_PARAM_NAME] || '' else request['QUERY_STRING'][BASE64_TOKEN_PARAM_PATTERN, 1] || '' end end
header_contains_base64_token?()
click to toggle source
# File lib/apiphobic/requests/authorization_token.rb, line 95 def header_contains_base64_token? raw_authorization_header =~ BASE64_TOKEN_HEADER_PATTERN end
header_contains_json_web_token?()
click to toggle source
# File lib/apiphobic/requests/authorization_token.rb, line 99 def header_contains_json_web_token? raw_authorization_header =~ JSON_WEB_TOKEN_HEADER_PATTERN end
json_web_token_from_header()
click to toggle source
# File lib/apiphobic/requests/authorization_token.rb, line 83 def json_web_token_from_header raw_authorization_header[JSON_WEB_TOKEN_HEADER_PATTERN, 1] end
json_web_token_from_params()
click to toggle source
# File lib/apiphobic/requests/authorization_token.rb, line 87 def json_web_token_from_params if request.respond_to?(:params) request.params[JSON_WEB_TOKEN_PARAM_NAME] || '' else request['QUERY_STRING'][JSON_WEB_TOKEN_PARAM_PATTERN, 1] || '' end end
params_contains_base64_token?()
click to toggle source
# File lib/apiphobic/requests/authorization_token.rb, line 103 def params_contains_base64_token? if request.respond_to?(:params) request.params.has_key?(BASE64_TOKEN_PARAM_NAME) else request['QUERY_STRING'] =~ BASE64_TOKEN_PARAM_PATTERN end end
params_contains_json_web_token?()
click to toggle source
# File lib/apiphobic/requests/authorization_token.rb, line 111 def params_contains_json_web_token? if request.respond_to?(:params) request.params.has_key?(JSON_WEB_TOKEN_PARAM_NAME) else request['QUERY_STRING'] =~ JSON_WEB_TOKEN_PARAM_PATTERN end end
retrieve_token(token)
click to toggle source
# File lib/apiphobic/requests/authorization_token.rb, line 127 def retrieve_token(token) Tokens::JsonWebToken.__send__( "from_#{type.downcase}", token, private_key: private_key, ) end
token_from_header()
click to toggle source
# File lib/apiphobic/requests/authorization_token.rb, line 47 def token_from_header @token_from_header ||= if header_contains_json_web_token? retrieve_token(json_web_token_from_header) elsif header_contains_base64_token? Tokens::Base64.convert(raw_token: base64_token_from_header) else Tokens::Null.instance end rescue Erratum::Errors::InvalidToken Tokens::Invalid.instance end
token_from_params()
click to toggle source
# File lib/apiphobic/requests/authorization_token.rb, line 59 def token_from_params @token_from_params ||= if params_contains_json_web_token? retrieve_token(json_web_token_from_params) elsif params_contains_base64_token? Tokens::Base64.convert(raw_token: base64_token_from_params) else Tokens::Null.instance end rescue Erratum::Errors::InvalidToken Tokens::Invalid.instance end