Login de usuário e autenticação
Última atualização: 16 de julho de 2026
O PlayServ parte do princípio de que o client faz a autenticação do usuário em um sistema externo — o seu provedor de identidade — e depois passa o UserToken resultante para o SDK. O PlayServ usa esse token para elevar os privilégios da Session e vinculá-la a um perfil de usuário existente, ou criar um novo.
Use este fluxo quando:
- o Player acabou de concluir a autenticação na sua UI — usuário/senha, login por provedor, etc.
- o app inicia e você já tem um
UserTokenguardado de antes - você precisa reautenticar porque o token não é mais válido
O fluxo de login
Autentique o Player no seu sistema externo
O Player entra pelo seu provedor de identidade — usuário/senha, um provedor social, ou qualquer outro método que você suporte. Em caso de sucesso, o seu sistema emite um UserToken.
O PlayServ não executa esta etapa; ele consome o token que o seu sistema produz.
Passe o UserToken para o SDK
Entregue o UserToken ao SDK para que o PlayServ possa elevar a Session. Há dois pontos de entrada, conforme quando você tem o token — Ready(UserToken) no início da Session, ou Login(UserToken) durante a execução. Ambos fazem a mesma elevação de privilégios. Veja Ready e Login abaixo.
O PlayServ valida e eleva a Session
Durante o handshake, o PlayServ chama ValidateClient no servidor (se declarado). Se a validação passa, os privilégios da Session são elevados e a Session é vinculada ao perfil do Player. Se falha, o client é recusado.
Ready e Login: dois pontos de entrada
Ready(UserToken) e Login(UserToken) fazem a mesma elevação de privilégios — a diferença é o momento.
- Ready — no início da Session
- Login — durante a execução
Se o usuário foi autenticado antes e o UserToken já está guardado localmente, passe-o imediatamente ao iniciar a Session:
await PlayServ.Ready(UserToken);
Como a elevação acontece no início da Session, o estado autenticado é alcançado mais cedo do que chamando Login(...) em seguida.
Use Login(UserToken) quando o Player se autentica durante a execução — por exemplo, depois de digitar as credenciais na sua tela de login:
// External authentication returns a UserToken
var result = await PlayServ.Login(UserToken);
Quando o token deixa de ser válido
Se a sessão do Player termina ou o token guardado se torna inválido, o handshake pode retornar um erro em Ready(UserToken). Nesse caso:
Reautentique externamente
O Player se autentica de novo no seu sistema externo, que emite um UserToken novo.
Chame Login com o novo token
Passe o token recém-emitido com Login(UserToken) para elevar a Session outra vez.
Validação no servidor: ValidateClient
Para validar o client autenticado no servidor, o PlayServ faz uma chamada RPC a ValidateClient, se ele estiver declarado no código de servidor. Retorne true para aceitar o client, ou false para recusá-lo — se a validação falha, o client não recebe a elevação de privilégios e é desconectado.
[Server]
public class ClientAuth
{
public bool ValidateClient(Session session)
{
// return true -> validation passed, privileges upgraded
// return false -> client denied / disconnected
return true;
}
}
ValidateClient é o ponto onde a validade do UserToken é imposta. Trate este método como o seu portão, no servidor, para elevar privilégios.
Como isso se relaciona com handshake e Session
Ready(UserToken)afeta o caminho do handshake no início da Session.Login(UserToken)é a mesma elevação de privilégios, só que iniciada depois, durante a execução.- O estado da Session continua sendo o indicador principal da prontidão do client em runtime.
Próximos passos
- SDK Initialisation & Handshake — como
Ready(...)dá início ao fluxo - Proxy Module & Handshake — como a autenticação afeta a admissão e a aplicação de regras no handshake
- Session Lifecycle & States — como o estado da Session reflete prontidão e desconexões forçadas
- RPC & Server-side Game Logic — onde o código de validação no servidor é escrito e implantado