autenticação socket.io após o soquete estabelecido

Estou trabalhando em um pequeno jogo multiplayer. Eu gostaria de introduzir autenticação. Estou usando o Node.js e o Socket.io.

Quando o usuário chegar à página principal - quero que ele entre no jogo, esteja logado ou não - mas não poderá fazer nada dentro dele (apenas observe).

Como eu poderia autenticar o usuário no soquete já aberto?

Posso manter a autenticação ainda se eles saírem do site e voltarem? Você pode passar um cookie através de um soquete da web?

EDITA

Para aprofundar minha pergunta. Um dos pensamentos possíveis que tive foi fornecer a conexão do websocket e, quando eles tentam fazer login, passa o nome de usuário e a senha como uma mensagem para o websocke

client.on('onLogin', loginfunction);

Eu poderia pegar o nome de usuário e a senha, verificar no banco de dados, pegar o ID da sessão do soquete e passá-lo em algum lugar para dizer que a sessão está autenticada para esse usuári

Isso é seguro? Ainda posso implementar um cookie no soquete para que eles voltem? Existe alguma maneira no socket.io de declarar que o soquete agora está autenticado em vez de verificar manualmente cada mensagem recebida?

Felicidade

questionAnswers(2)

yourAnswerToTheQuestion