Pergunta de entrevista para Desenvolvedor Full Stack

Você usaria sessões no servidor ou JWTs para autenticar uma aplicação web nova?

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

O padrão são sessões no servidor em um cookie httpOnly, Secure e com SameSite, porque você consegue revogar na hora e o cliente nunca segura nada sensível. Os JWTs ganham o seu lugar quando os serviços não podem compartilhar um armazenamento de sessão e você precisa de verificação sem estado. Se você usar, mantenha os access tokens de vida curta, combine com um refresh token rotativo, e aceite que revogar antes da expiração exige uma lista de bloqueio que agora é sua para manter.

Por que os entrevistadores perguntam isso

Esta é uma pergunta de julgamento vestida de pergunta de trivia. O entrevistador quer ouvir um padrão com um motivo, não uma resposta religiosa, e está escutando se você conhece o problema da revogação e o problema do armazenamento. Candidatos que dizem que JWTs são mais seguros ou que sugerem localStorage normalmente nunca rodaram um sistema de autenticação em produção. Nomear o tradeoff vale mais que escolher um lado.

Como estruturar sua resposta

  • Dê o seu padrão e o único motivo dele.
  • Cite a condição que mudaria a sua opinião.
  • Explique o problema da revogação com tokens.
  • Cubra onde a credencial fica armazenada no cliente.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Para um produto normal com um backend só, eu começo com sessões no servidor. Um id de sessão opaco em um cookie httpOnly significa que o navegador não consegue ler aquilo, então um bug de XSS não entrega a conta de imediato, e deslogar alguém de todo lugar é apagar uma linha. Essa revogação instantânea vale muito na primeira vez que você tem que trancar uma conta comprometida às duas da manhã. Eu migro para JWTs quando existem vários serviços que precisam verificar quem está chamando sem um armazenamento compartilhado, ou quando um cliente mobile e um cliente de navegador batem na mesma API. Mesmo assim eu mantenho os access tokens em uns quinze minutos com um refresh token rotativo, e detecto reuso de refresh como sinal de roubo. O que eu não faço é colocar tokens no localStorage; se eu preciso deles no navegador, eles vão em um cookie httpOnly com SameSite configurado e proteção contra CSRF nas requisições que mudam estado. Não ter estado é um benefício real, mas as pessoas subestimam o custo de não conseguir revogar.

Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.

Veja como funciona

Perguntas de acompanhamento que você pode esperar

  • Como você deslogaria um usuário de todos os dispositivos usando JWTs?
  • Por que o localStorage é um lugar ruim para um token?
  • Como a rotação de refresh token detecta um token roubado?

Mais perguntas para Desenvolvedor Full Stack

Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.

Prever minhas perguntas

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot