Module: Traitify
- Extended by:
- Configuration
- Defined in:
- lib/traitify/middleware/raise_error.rb,
lib/traitify.rb,
lib/traitify/data.rb,
lib/traitify/error.rb,
lib/traitify/client.rb,
lib/traitify/version.rb,
lib/traitify/response.rb,
lib/traitify/client/model.rb,
lib/traitify/client/setup.rb,
lib/traitify/configuration.rb,
lib/traitify/client/request.rb,
lib/traitify/client/overrides.rb,
lib/traitify/client/connection.rb,
lib/traitify/middleware/formatter.rb
Overview
Defined Under Namespace
Modules: Configuration, Middleware
Classes: BadRequest, Client, Data, Error, NotFound, Response, ServerError, Unauthorized, UnprocessableEntity
Constant Summary
collapse
- VERSION =
"2.1.1".freeze
Configuration::VALID_OPTIONS_KEYS
Class Attribute Summary collapse
Class Method Summary
collapse
configure, options
Class Attribute Details
.logger ⇒ Object
28
29
30
31
32
|
# File 'lib/traitify.rb', line 28
def logger
@logger ||= Logger.new($stdout).tap do |log|
log.progname = name
end
end
|
Class Method Details
.log(level, message) ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/traitify.rb', line 34
def log(level, message)
message = "[traitify-ruby] #{message}"
case level
when :debug
logger.debug message
when :warn
logger.warn message
when :error
logger.error message
else
logger.info message
end
end
|
.new(options = {}) ⇒ Object
24
25
26
|
# File 'lib/traitify.rb', line 24
def new(options = {})
Traitify::Client.new(options)
end
|
.valid_jwt_token?(token) ⇒ Boolean
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/traitify.rb', line 48
def valid_jwt_token?(token)
algorithm = "RS256"
return false unless jwt_public_keys && jwt_public_keys.any?
public_keys = jwt_public_keys.map { |key| OpenSSL::PKey::RSA.new(key) }
public_keys.each do |public_key|
decoded_token = JWT.decode(token, public_key, true, {
algorithm: algorithm,
iss: "Traitify by Paradox",
verify_iss: true,
verify_iat: true,
verify_nbf: true,
verify_jti: true
})
payload = decoded_token[0]
validate_claims(payload)
return true
rescue JWT::ExpiredSignature, JWT::DecodeError, JWT::VerificationError => e
log(:warn, "[JWT] #{e.class.name}: #{e.message}")
next
rescue => e
log(:error, "[JWT] Unexpected error: #{e.class} - #{e.message}")
next
end
false
end
|