Saltar al contenido

Establecer y cargar variables de entorno en una aplicación de Phoenix

Luego de mucho batallar ya encontramos el resultado de esta dificultad que muchos usuarios de nuestro sitio han presentado. Si deseas aportar algún detalle no dudes en compartir tu conocimiento.

he encontrado otro ejemplo

1.- Crea un archivo .env en tu carpeta principal

2.- Agrega las variables env en el .env expediente

# Example:
# MyApp/.env file
export GITHUB_CLIENT_ID="testID"
export GITHUB_SECRET_CLIENT_ID="testSecretID"

3.- Corre source .env y cada vez que se modifique, ejecute el comando nuevamente, tal vez en reiniciar también

4.- Que es realmente importante – no olvides agregar tus archivos secretos a MyApp/.gitignore

# add this at the end
/.env

5.- Ejecutar servidor phoenix mix phx.server o mix phoenix.server

Puedes probarlo con

iex -S mix phoenix.server

iex> System.get_env("GITHUB_CLIENT_ID")
"testID"

Enlaces de ayuda:

Error de variable de entorno
Documentación de configuración

Hay dos fallas principales con lo que está tratando de hacer:

En primer lugar, está tratando de instruir mix para configurar oauth aplicación OTP, mientras que lo que necesitas es configurar la tuya propia:

config :my_app, :oauth,
  github_client_id: "(CLIENT ID)",
  github_client_secret: "(SECRET)"

Ahora en su configuración principal puede hacer:

config :ueberauth, Ueberauth.Strategy.Github.OAuth,
   client_id: Application.get_env(:my_app, :oauth)[:github_client_id],
   client_secret: Application.get_env(:my_app, :oauth)[:github_client_secret]

El segundo fallo es que GITHUB_CLIENT_ID es un átomo, y está tratando de acceder a él últimamente como un string. En general, uno no debe usar nombres de átomos que comiencen con mayúsculas, ya que se reservan para los nombres de los módulos.

Por otro lado, aún podrías usar System.get_env/2 (con tu config.ex,) asumiendo que los valores fueron previamente poner allí en el medio ambiente:

prod.secret.exs (ya que todavía es simple Elixir)

System.put_env("GITHUB_CLIENT_ID", "(CLIENT ID)")
System.put_env("GITHUB_CLIENT_SECRET", "(CLIENT SECRET)")

Si estás de acuerdo, eres capaz de dejar un enunciado acerca de qué le añadirías a esta división.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *