Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

500
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda