Class: Gaku::Api::RefreshAuthenticateUser

Inherits:
Object
  • Object
show all
Includes:
SimpleCommand
Defined in:
app/services/gaku/api/refresh_authenticate_user.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(refresh_token) ⇒ RefreshAuthenticateUser

Returns a new instance of RefreshAuthenticateUser.



9
10
11
# File 'app/services/gaku/api/refresh_authenticate_user.rb', line 9

def initialize(refresh_token)
  @refresh_token = refresh_token
end

Instance Attribute Details

#refresh_tokenObject

Returns the value of attribute refresh_token.



7
8
9
# File 'app/services/gaku/api/refresh_authenticate_user.rb', line 7

def refresh_token
  @refresh_token
end

Instance Method Details

#callObject



13
14
15
16
17
18
19
20
21
22
# File 'app/services/gaku/api/refresh_authenticate_user.rb', line 13

def call
  if user
    secret = SecureRandom.hex(64)
    $redis.set("token:#{jti}", secret, ex: 20.minutes)
    {
      auth_token: JsonWebToken.encode({user_id: user.id}, exp: 3.minutes.from_now, jti: jti, secret: secret),
      refresh_token: JsonWebToken.encode({user_id: user.id}, exp: 20.minutes.from_now, jti: jti, secret: secret)
    }
  end
end