【发布时间】:2017-11-14 16:52:11
【问题描述】:
我有一个 phoenix 应用程序正在对 github 进行 OAuth 调用。我想将我的密钥存储为环境变量,这样我就可以将它们排除在版本控制之外。
我创建了一个名为 .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 页面。我注意到网址没有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=code&scope=user%2Cpublic_repo 的 URL `
如果我不在config.exs 中使用环境变量,而是使用字符串值,则请求会正常工作。
如何在 Phoenix 中使用环境变量?
【问题讨论】:
标签: oauth elixir phoenix-framework ueberauth