Verifying client authentications

Hi

I currently setting up authentication for my project. The idea is the following:

  1. Client enters username/password, submits this to my authentication service/server and gets back a token.
  2. Clients tries to connect to the game server and passes along the token in the options param list
  3. On the server in the AGameSession::ApproveLogin function the token is received from the players connection attempt. Here I validate that the token is correct. If it is ok I let the player connect else the player is dropped

How would I prevent the game from freezing for a short duration while validating the token? I was thinking of validating it by making a http call from the game server to my authentication service and the service would tell the game server if the token that the client sent was valid.

How can I make the http call from the ApproveLogin function? If I make a http call and wait for the response it the server freezes for a while. And if I instead make a http call using a delegate so not to block the process the ApproveLogin function returns before the validation is done.

Am tackling this the correct way? Or should I handle the validation some other way?