
Segurança e autenticação
JWT, OAuth2, gerenciamento de sessões, RBAC, crypto/rand vs math/rand, configuração TLS, codificação segura, melhores práticas de segurança
1Qual é a principal diferença entre tokens JWT e sessões de servidor tradicionais?
Qual é a principal diferença entre tokens JWT e sessões de servidor tradicionais?
Resposta
Os tokens JWT são stateless (sem estado no lado do servidor) e contêm todas as informações necessárias codificadas dentro do próprio token. Ao contrário das sessões tradicionais que armazenam os dados em memória ou em banco de dados no lado do servidor com apenas um session ID no lado do cliente, o JWT transfere a responsabilidade de armazenamento para o cliente. Isso facilita o escalonamento horizontal, pois nenhum estado compartilhado é necessário entre os servidores.
2Quais são as três partes de um token JWT separadas por pontos?
Quais são as três partes de um token JWT separadas por pontos?
Resposta
Um JWT é composto por três partes codificadas em Base64URL e separadas por pontos: Header (algoritmo e tipo), Payload (claims/dados) e Signature (verificação de integridade). A estrutura é header.payload.signature. O header indica o algoritmo de assinatura (HS256, RS256), o payload contém os claims (iss, sub, exp) e a signature garante que o token não foi adulterado.
3Qual claim padrão de JWT define o timestamp de expiração do token?
Qual claim padrão de JWT define o timestamp de expiração do token?
Resposta
O claim 'exp' (expiration time) define o timestamp Unix após o qual o token não deve mais ser aceito. Os claims padrão também incluem 'iss' (issuer), 'sub' (subject), 'aud' (audience), 'iat' (issued at) e 'nbf' (not before). Validar o claim exp é crucial para limitar a duração de validade dos tokens e reduzir o impacto de um token roubado.
Qual é a principal diferença entre HS256 e RS256 para assinar JWTs?
Como revogar um JWT antes de sua expiração natural?
+21 perguntas de entrevista
Outros temas de entrevista Go
Fundamentos de Go
Estruturas de dados em Go
Interfaces em Go
Tratamento de erros
Goroutines básicas
Channels
Go Modules
Servidor HTTP
Cliente HTTP
Codificação JSON
Database/SQL
Pacote context
Testing
Padrões de concorrência
Primitivas de sincronização
Frameworks web Go
Design de API REST
gRPC
Reflection
Gerenciamento de memória
Otimização de desempenho
Generics
Go Design Patterns
Microservices
Docker & Containerization
Kubernetes Basics
Go Avançado
Desenvolvimento de CLI
Domine Go para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis