I am using a server model similar to Steam or Minecraft:
There are community servers run by players and a hub authentication server that I control.
The client player logs into the game and receives a session token.
When the player wants to connect to a server, they request from the authentication server to exchange their session token for a server session token.
They then pass that server session token to the server which then checks with the authentication server if the token is valid, and if it is, the community server lets the client in.
My issue is, this gives the UGC server a lot of power. I know that if the UGC server is fully moddable, you can't stop a lot of stuff, but the main issue is that if a malicious admin intercepts this server session token packet from the client, the admin can use this to connect to an entirely new server pretending to be the client.
I need a solution to fix this and make a model similar to Steam or Minecraft's models. thank you.