Pregunta de entrevista para Desarrollador full stack

Explícame el flujo de código de autorización de OAuth con PKCE.

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

El cliente genera un verificador aleatorio, lo convierte en un hash que es el code challenge y redirige al usuario al servidor de autorización con ese challenge. El usuario se autentica, vuelve redirigido con un código de un solo uso y el cliente intercambia ese código más el verificador original por tokens. Como el intercambio requiere el verificador, un código interceptado no sirve de nada. OAuth 2.1 exige PKCE para todo cliente, público o confidencial.

Por qué lo preguntan los entrevistadores

Casi todo producto hace login social o alguna integración de terceros, así que el entrevistador quiere saber si has implementado uno o solo has ido pulsando por una librería. Escuchan la redirección, el intercambio de código de servidor a servidor y por qué existe PKCE. Suma puntos separar la autorización de OAuth de la autenticación de OIDC, que es la distinción que la mayoría de candidatos difumina.

Cómo estructurar tu respuesta

  • Traza el flujo en orden, del verificador al intercambio de tokens.
  • Explica qué ataque previene PKCE.
  • Distingue el ID token del access token.
  • Di dónde acaba cada token en tu lado.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

El cliente empieza generando un verificador de alta entropía y aplicándole SHA-256 para crear el code challenge. Envía al usuario al servidor de autorización con el client id, la redirect URI, los scopes, un valor state y ese challenge. El usuario inicia sesión y da su consentimiento, y el servidor de autorización redirige de vuelta con un código de vida corta. El cliente entonces envía ese código y el verificador en crudo al endpoint de tokens, el servidor aplica el hash al verificador y comprueba que coincide con el challenge que guardó, y solo entonces emite tokens. Ese es el sentido de PKCE: un código robado de una redirección, de un log o por una app maliciosa en el dispositivo no se puede canjear sin el verificador, que nunca salió del cliente. Aun así valido state por separado, porque eso cubre el CSRF en el callback y no la interceptación del código. Si estoy haciendo login en vez de acceso a una API, me importa el ID token de OIDC y valido su firma, emisor, audiencia y nonce antes de fiarme de un solo claim.

¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.

Mira cómo funciona

Preguntas de seguimiento que puedes esperar

  • ¿De qué protege el parámetro state que PKCE no cubre?
  • ¿Cuál es la diferencia entre un ID token y un access token?
  • ¿Dónde guardarías el refresh token para un cliente basado en navegador?

Más preguntas para Desarrollador full stack

Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.

Predecir mis preguntas

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot