Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

487
Vistas
Cómo usar process.env en la sección "auth" de nuxt.config.js

Soy nuevo en Nuxt (usando Nuxt 2.15.3 + Vue2 + Javascript).

Tengo algunas dificultades con una variable de entorno AUTH_PROVIDER_URL que está configurada para ser diferente en mi configuración local, en mis servidores de ensayo y en el entorno de producción. Estoy 100% seguro de que la variable de entorno está configurada correctamente en cada entorno.

El problema que tengo está en el archivo nuxt.config.js y en la sección "autorización", donde debo señalar una URL diferente para cada entorno (local, puesta en escena, producción).

https://auth.nuxtjs.org/schemes/oauth2#options

En mi nuxt.config.js tengo:

 authorization: process.env.AUTH_PROVIDER_URL + '/auth', userInfo: process.env.AUTH_PROVIDER_URL + '/userinfo', logout: process.env.AUTH_PROVIDER_URL + '/logout',

Esto funciona bien localmente en mi computadora cuando inicio la aplicación en modo de desarrollo (npm run dev) y producción (npm run build, npm run start). Las variables (autorización, información de usuario y cierre de sesión) para las direcciones URL se configuran correctamente en función de las instrucciones process.env.AUTH_PROVIDER_URL.

Pero cuando lo implemento y lo ejecuto en los servidores de preparación y producción, process.env.AUTH_PROVIDER_URL devuelve UNDEFINED. Parece que "process.env" no encuentra la variable de entorno AUTH_PROVIDER_URL en el contexto "auth" en el archivo nuxt.config.js en los servidores de ensayo y producción.

El uso de process.env como se muestra a continuación en los archivos nuxt.config.js funciona tanto localmente, en servidores de prueba como en servidores de producción y las variables se configuran correctamente.

 export default { auth_provider_url: process.env.AUTH_PROVIDER_URL, publicRuntimeConfig: { auth_provider_url: process.env.AUTH_PROVIDER_URL, }, }

¿Cómo es que process.env funciona bien en este contexto en el archivo nuxt.config.js pero no en el contexto "auth" en nuxt.config.js? ¿Puedo acceder a estas variables en la sección "auth" del archivo nuxt.config.js?

¿Cuál es la forma preferida/correcta de manejar (usar) variables de entorno en la sección "auth" en el archivo nuxt.config.js?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Yo tuve el mismo problema. El process.env podría usarse en otra sección del archivo nuxt.config.js , pero no en la parte de auth . Supongo que el problema es que la auth está configurada antes de que se inicialice process.env .

Si también está utilizando la v5 del módulo Nuxt Auth, @nuxtjs/auth-next , entonces puede seguir esta solución.

Primero, extienda Oauth2Scheme para que acepte variables de entorno.

runtimeConfigurableScheme.ts

 import { Oauth2Scheme } from '@nuxtjs/auth-next/dist/runtime.js'; import { Auth, Oauth2SchemeOptions } from '@nuxtjs/auth-next/dist/runtime'; import { SchemePartialOptions } from '@nuxtjs/auth-next'; export default class RuntimeConfigurableOauth2Scheme extends Oauth2Scheme { constructor ($auth: Auth, options: SchemePartialOptions<Oauth2SchemeOptions>) { const configOptions = { ...options, ...$auth.ctx.$config.auth.strategies[options.name] }; super($auth, configOptions); } }

Luego, utilícelo en el archivo nuxt.config.js así:

 auth: { strategies: { custom: { scheme: '/path/to/runtimeConfigurableScheme.ts' } } }, publicRuntimeConfig: { auth: { strategies: { custom: { endpoints: { authorization: `${process.env.AUTH_URL}/realms/${process.env.AUTH_REALM}/protocol/openid-connect/auth`, token: `${process.env.AUTH_URL}/realms/${process.env.AUTH_REALM}/protocol/openid-connect/token`, userInfo: `${process.env.AUTH_URL}/realms/${process.env.AUTH_REALM}/protocol/openid-connect/userinfo`, logout: `${process.env.AUTH_URL}/realms/${process.env.AUTH_REALM}/protocol/openid-connect/logout?redirect_uri=${encodeURIComponent(process.env.LOGOUT_REDIRECT_URL)}` }, token: { property: 'access_token', type: 'Bearer', name: 'Authorization', maxAge: 300 }, refreshToken: { property: 'refresh_token', maxAge: 60 * 60 * 24 * 30 }, responseType: 'code', grantType: 'authorization_code', clientId: process.env.CLIENT_ID, scope: ['openid', 'profile', 'email', 'org'], codeChallengeMethod: 'S256' } } } }

Se puede llamar en los componentes con, por ejemplo, this.$auth.loginWith('custom') .

about 4 years ago · Juan Pablo Isaza Denunciar

0

process.env es una variable de entorno que usted define en su sistema. en su caso local, probablemente tenga un archivo .env que contenga esas claves y cuando ejecute npm run dev , las cargará automáticamente.
Ahora, cuando crea su aplicación, algunas variables de entorno se reemplazan durante la etapa de creación, por lo que debe tenerlas disponibles cuando lo haga, pero otras no, por lo que también deberá configurarlas en su servidor durante el tiempo de ejecución.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda