Class: UberLogin::TokenEncoder

Inherits:
Object
  • Object
show all
Defined in:
lib/uber_login/token_encoder.rb

Class Method Summary collapse

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

.generateObject



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