Para resumir, acabo de terminar de crear una aplicación con NextJs, NextAuth y SWR, uso SWR para llamar a varias API de Twitch, para autenticar la API de Twitch, uso mi ID de cliente de aplicaciones de Twitch y el token de portador de usuarios registrados que es tomado del objeto de sesión de NextAuth.
Mi preocupación es que cada vez que SWR realiza una función API para completar la página con datos o actualizarla, puede ver fácilmente los encabezados de solicitud al capturar las llamadas de red en las herramientas de desarrollo de Chrome o Firefox.
. Esto es muy preocupante porque este es un entorno de producción y aún sucede, esto también viola la documentación de los desarrolladores de Twitch y es bastante seguro que hay " Advertencia: Trate su token como una contraseña. Por ejemplo, nunca use tokens de acceso en ninguna URL pública, y nunca muestre tokens en cualquier página web sin necesidad de hacer clic para eliminar la ofuscación".
Ahora mi siguiente mejor pregunta es ¿cómo puedo evitar que esto suceda? ¿Es su forma de hacerlo?
No hay necesidad de alarmarse. Está bien incluir tokens de portador en el encabezado de Authorization de la solicitud; de hecho, esa es la forma estándar de enviarlos. No puede ocultarlo de las herramientas de desarrollo de Chrome, ya que eso anularía su propósito.
El consejo que leíste sobre nunca usar tokens de acceso en ninguna URL pública puede significar que nunca los muestres en una URL como mywebsite.com/?token=[abcd] porque entonces sería accesible a través del historial del navegador, o no envíes un token diseñado para un servicio a la API de otro servicio.
Esto no tiene nada que ver con SWR: es un comportamiento HTTP estándar.