Estoy creando un sitio web nextjs. En mi archivo js, estoy obteniendo datos de API y estoy asignando el token a través del archivo .env.local . Pero cuando traté de acceder a .env variable que he creado, no devuelve nada. Quiero decir, devuelve empty/undefined .
Mi código de archivo js:
export async function getStaticProps() { const response = await fetch(`https:/mywebsite.com?token=${process.env.PRAISES_TOKEN}`); const body = await response.json(); console.log(body); return { props: { naats: body } } }.env.local
PRAISES_TOKEN=MY_TOKEN La versión de mi proyecto nextjs es 12 .
En mi git bash, devuelve así, sin valor de variable:
https://website.com?token= Actualización: lo que he descubierto es que cuando asigno cualquier token/hash a la variable env, la variable devuelve indefinida. Si asigno la URL https, entonces la variable funciona bien. Entonces, pensé en asignar la URL completa con token como https://website.com?token=jhasvdiasvdjkagdg8catscuas , pero no funciona y devuelve indefinido. La variable solo funciona con valores de URL https pero sin parámetros. Esto es extraño.
¿Puede alguien por favor ayudarme con este problema? No quiero exponer mi token/api_token al navegador/público.
Next.js expandirá automáticamente las variables $VAR dentro de sus archivos .env*, por lo que debe escapar de los signos $ con \ , por lo que si su token es $abcd$ef , debería verse así: PRAISES_TOKEN=\$abcd\$ef
También es una buena idea envolver el valor con comillas " , porque los tokens también suelen tener otros símbolos como = y etc.:
PRAISES_TOKEN="\$abcd\$ef"