
def get_reauth_jwt (user_id)
    #claims = get_claims user_id
  
    iat = Time.now.to_i
    exp = iat + 10 
  
    payload = { 
      sub: 'reauthentication' ,
      admin: check_if_user_is_admin(user_id),
      iss: 'roysathome.net',
      uid: user_id, #Example id
      iat: Time.now.to_i,
      exp: Time.now.to_i + 3600
    }
  
    return JWT.encode payload, TOKEN_SECRET, 'HS256'
  #data: {time: 'now', help: 'no'}.to_json
  end
  
  def get_jwt (user_id)
    claims = get_claims user_id
  
    iat = Time.now.to_i
    exp = iat + 60
  
    payload = { 
      sub: 'authentication' ,
      admin: check_if_user_is_admin(user_id),
      iss: 'roysathome.net',
      uid: user_id, #Example id
      iat: iat,
      exp: exp,
      claims: claims
    }
  
    return JWT.encode payload, TOKEN_SECRET, 'HS256'
end
  

def decode_token(base64_encoded_token)
    return JWT.decode(base64_encoded_token, TOKEN_SECRET, true, algorithm: 'HS256')
end

def get_and_check_token(request)
    authorization_header = request.env['HTTP_AUTHORIZATION']

  unless authorization_header && authorization_header.match(/^Bearer (.+)/)
    return nil
  end

  return reauth_token = Regexp.last_match(1)
end