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 |
# File 'lib/uber_login/token_encoder.rb', line 19 def decode(composite) composite.split(':') 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
23 24 25 |
# File 'lib/uber_login/token_encoder.rb', line 23 def sequence(composite) decode(composite)[0] end |
.token(composite) ⇒ Object
27 28 29 |
# File 'lib/uber_login/token_encoder.rb', line 27 def token(composite) decode(composite)[1] end |
.token_hash(composite) ⇒ Object
31 32 33 |
# File 'lib/uber_login/token_encoder.rb', line 31 def token_hash(composite) BCrypt::Password.create(token(composite)).to_s end |