Codificar parámetros de consulta URL y URI de redirección
Codifica de forma segura valores redirect_uri, URL de callback y parámetros anidados para que tu solicitud de autenticación o API deje de fallar.
Esta guía mantiene la codificación URL en un plano práctico: flujos de redirección, parámetros de consulta, valores scope y la diferencia entre codificar una URL completa y codificar un solo componente.
Úsalo cuando
Una URL de callback, una cadena de consulta anidada o un valor redirect_uri sigue siendo rechazado o truncado.
Qué revisar primero
Comprueba si codificaste toda la URL o solo el componente del parámetro. Esa diferencia suele explicar las redirecciones rotas.
Error habitual
Espacios, signos más, arrobas y signos de interrogación suelen parecer inofensivos en los registros, pero rompen solicitudes cuando se copian en bruto.
Codificar un valor redirect_uri
Las URL de callback anidadas deben codificarse como valor de parámetro, no pegarse en bruto en la solicitud exterior.
redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback%3Fnext%3D%252Fsettings
Codificar una cadena scope
Los valores de scope de OAuth suelen contener espacios que deben codificarse en porcentaje para transmitirse de forma fiable.
scope=read%3Ausers%20write%3Ausers
Gestionar valores de búsqueda o correo electrónico
Caracteres como +, @, / y ? son buenas señales de que estás codificando el componente correcto.
email=dev%2Balerts%40example.com
Mantener legible el callback
La herramienta en vivo te permite codificar o decodificar un valor cada vez, lo cual es útil cuando los registros de redirección son difíciles de leer.
https://app.example.com/callback?next=/settings
Usa encodeURI para una URL completa cuya estructura quieras conservar. Usa encodeURIComponent para un valor de parámetro como redirect_uri, state o una consulta de búsqueda.
- La mayoría de los errores de autenticación y API vienen de necesitar encodeURIComponent y conservar por accidente caracteres reservados.
Las solicitudes firmadas, las redirecciones OAuth y las URL anidadas dependen de codificar el componente correcto en la capa correcta. Si dudas, aísla el valor y pruébalo por sí solo primero.
- Pasa al formateo JSON cuando el problema esté realmente en el cuerpo de la solicitud y no en la cadena de consulta.