Class: Bouncer::Token
- Inherits:
-
Object
- Object
- Bouncer::Token
- Defined in:
- lib/bouncer-client/token.rb
Instance Attribute Summary collapse
-
#payload ⇒ Object
readonly
Returns the value of attribute payload.
Class Method Summary collapse
Instance Method Summary collapse
- #device? ⇒ Boolean
- #email ⇒ Object
- #id ⇒ Object
- #image ⇒ Object
-
#initialize(token) ⇒ Token
constructor
A new instance of Token.
- #phone ⇒ Object
- #super_admin? ⇒ Boolean
- #user? ⇒ Boolean
- #validate! ⇒ Object
Constructor Details
#initialize(token) ⇒ Token
Returns a new instance of Token.
6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/bouncer-client/token.rb', line 6 def initialize token @token = token.split(' ')[1] return get_from_bouncer unless redis.exists "TOKEN:#{@token}" data = redis.get("TOKEN:#{@token}") begin @payload = JSON.parse data rescue JSON::ParserError get_from_bouncer end end |
Instance Attribute Details
#payload ⇒ Object (readonly)
Returns the value of attribute payload.
5 6 7 |
# File 'lib/bouncer-client/token.rb', line 5 def payload @payload end |
Class Method Details
.present?(request) ⇒ Boolean
55 56 57 58 |
# File 'lib/bouncer-client/token.rb', line 55 def self.present? request return false unless auth_header = request.headers['authorization'] auth_header.split(' ')[0] == 'Bearer' end |
Instance Method Details
#device? ⇒ Boolean
47 48 49 |
# File 'lib/bouncer-client/token.rb', line 47 def device? @payload['devices'] && !@payload['devices'].empty? end |
#email ⇒ Object
26 27 28 |
# File 'lib/bouncer-client/token.rb', line 26 def email @payload["users"]["email"] if user? end |
#id ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/bouncer-client/token.rb', line 18 def id if device? @payload["devices"]["id"] else @payload["users"]["id"] end end |
#image ⇒ Object
34 35 36 |
# File 'lib/bouncer-client/token.rb', line 34 def image @payload["users"]["image"] if user? end |
#phone ⇒ Object
30 31 32 |
# File 'lib/bouncer-client/token.rb', line 30 def phone @payload["users"]["phone"] if user? end |
#super_admin? ⇒ Boolean
43 44 45 |
# File 'lib/bouncer-client/token.rb', line 43 def super_admin? @payload["users"]["super_admin"] == true end |
#user? ⇒ Boolean
51 52 53 |
# File 'lib/bouncer-client/token.rb', line 51 def user? @payload['users'] && !@payload['users'].empty? end |
#validate! ⇒ Object
38 39 40 41 |
# File 'lib/bouncer-client/token.rb', line 38 def validate! return false unless @payload @payload["users"] != nil || @payload["devices"] != nil end |