Tengo una página .cshtml , donde un clic en un botón llama a una API
Actualmente, mi código JS se ve así:
var headers = {}; headers["Authorization-Token"] = '@Model.ApiToken'; $.ajax({ url: "my-url", type: "GET", headers: headers }); Sin embargo, si el usuario final abre la consola del navegador, va a la pestaña Red, busca el cshtml generado, puede ver:
var headers = {} headers[Authorization-Token] = 'my_token'El token se puede ver en texto claro. No puedo llamar a mi API sin este encabezado, ya que la llamada se rechaza inmediatamente si el encabezado no está presente.
¿Hay alguna forma de ocultarlo al usuario final y, de ser así, cómo?
Gracias
Es mejor mantener los tokens fuera del navegador, una opción es almacenar el token dentro de la cookie (cifrado, por supuesto). ASP.NET Core puede manejar eso automáticamente. O en el backend como parte de la sesión del usuario.
Una opción quizás mejor es considerar el uso del patrón Backend For Frontend (también conocido como BFF) para proteger las aplicaciones SPA.
Ver