Class: UberLogin::TokenEncoder
- Inherits:
-
Object
- Object
- UberLogin::TokenEncoder
- Defined in:
- lib/uber_login/token_encoder.rb
Class Method Summary collapse
- .decode(composite) ⇒ Object
- .encode(sequence, token) ⇒ Object
- .encode_array(composite_array) ⇒ Object
- .generate ⇒ Object
- .sequence(composite) ⇒ Object
- .token(composite) ⇒ Object
- .token_hash(composite) ⇒ Object
Class Method Details
.decode(composite) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/uber_login/token_encoder.rb', line 19 def decode(composite) if composite composite.split(':') else [ nil, nil ] end end |
.encode(sequence, token) ⇒ Object
11 12 13 |
# File 'lib/uber_login/token_encoder.rb', line 11 def encode(sequence, token) encode_array [ sequence, token ] end |
.encode_array(composite_array) ⇒ Object
15 16 17 |
# File 'lib/uber_login/token_encoder.rb', line 15 def encode_array(composite_array) composite_array.join(':') end |
.generate ⇒ Object
6 7 8 9 |
# File 'lib/uber_login/token_encoder.rb', line 6 def generate # 9 and 21 are both multiple of 3, so we do not get base64 padding (==) [ SecureRandom.urlsafe_base64(9), SecureRandom.base64(21) ] end |
.sequence(composite) ⇒ Object
27 28 29 30 31 |
# File 'lib/uber_login/token_encoder.rb', line 27 def sequence(composite) if composite decode(composite)[0] end end |
.token(composite) ⇒ Object
33 34 35 36 37 |
# File 'lib/uber_login/token_encoder.rb', line 33 def token(composite) if composite decode(composite)[1] end end |
.token_hash(composite) ⇒ Object
39 40 41 |
# File 'lib/uber_login/token_encoder.rb', line 39 def token_hash(composite) BCrypt::Password.create(token(composite)).to_s end |