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.