我有一个凤凰应用程序,正在对github进行OAuth调用。我想将我的密钥存储为环境变量,因此我可以将它们保留在版本控制之外。Elixir凤凰设置和使用环境变量
我创建了一个名为.env
,我定义我的私有密钥文件:
export GITHUB_CLIENT_ID="891538_my_key_bf0055"
我试图获取我的私钥我config.exs
文件,负责使用System.Config
配置应用程序文件。
config :ueberauth, Ueberauth.Strategy.Github.OAuth, client_id: System.get_env("GITHUB_CLIENT_ID"), client_secret: System.get_env("GITHUB_SECRET_ID")
为了使长话短说,我的控制器几乎能与github上的请求握手。当我向github请求授权我的应用程序http://localhost:4000/auth/github
时,我几乎可以提出请求,并从github看到404页面。我注意到,虽然URL没有client_id
!
我的路由器来访问回调
scope "/auth", Discuss do
pipe_through :browser # Use the default browser stack
# make request to github, google, fb
get "/:provider", AuthController, :request
get "/:provider/callback", AuthController, :callback
end
而我得到的是网址,没有value
https://github.com/login/oauth/authorize? CLIENT_ID = & REDIRECT_URI = HTTP%3A%2F%2Flocalhost%3A4000%2Fauth%2Fgithub%2Fcallback & RESPONSE_TYPE =代码&范围=用户%2Cpublic_repo`
如果我不config.exs
使用环境变量和取而代之的是使用字符串值,请求的工作方式应该如此。
如何在Phoenix中使用环境变量?
今晚我将检查出的酒厂文档和看我怎么能实现这个我的项目。如果一切顺利,我会将其标记为正确的答案。谢谢迈克! –