Wis*_*ell 6 authentication uri ruby-on-rails callback omniauth
我很抱歉发布这样一个蹩脚的问题,但我已经设法使用omniauth与facebook,twitter甚至linkedin,但我仍然无法用谷歌omniauth 2.0,我发现该问题与回调URI有关(我必须补充说我正在使用本地环境[localhost]进行测试,所以我试图通过以下方式更改URI
http:127.0.0.1:3000/auth/google_oauth2/callback/
http:127.0.0.1:3000/auth/google_oauth2/callback
https:127.0.0.1:3000/auth/google_oauth2/callback/
https:127.0.0.1:3000/auth/google_oauth2/callback
http:localhost:3000/auth/google_oauth2/callback/
http:localhost:3000/auth/google_oauth2/callback*
https:localhost:3000/auth/google_oauth2/callback/
https:localhost:3000/auth/google_oauth2 /打回来
到目前为止,我已经尝试了每个单独的,没有这些工作,看起来标有*的那个是我的浏览器返回的那个,但仍然收到
The redirect URI in the request:
http://localhost:3000/auth/google_oauth2/callback did not match a
registered redirect URI
Run Code Online (Sandbox Code Playgroud)
我在那里寻找关于如何执行此身份验证的答案,或者如何为localhost回调正确设置回调URI.提前致谢.
顺便说一句:我正在使用Rails 4和omniauth,omniauth-google-oauth2 gems BTW2:我删除了"//"所以这些不会被视为链接
小智 0
这段代码对我有用。在多个环境中使用 Google Drive API。您的“授权重定向URI”应如下所示(我使用的是google,您的可能是google_oauth2。更改了omniauth配置文件的提供程序选项)。每个 URI 都换行。
http://localhost:3000/auth/google/callback
https://staging_server/auth/google/callback
https://production_server/auth/google/callback
Run Code Online (Sandbox Code Playgroud)
我的 client_id、client_secret 位于“config/google_client.yml”中。“config/initializers”中的“omniauth.rb”文件应如下所示
google_client = YAML.load_file("#{Rails.root.join('config/google_client.yml')}")
ENV['GOOGLE_APP_NAME'] = google_client['APP_NAME']
ENV['GOOGLE_CLIENT_ID'] = google_client['CLIENT_ID']
ENV['GOOGLE_CLIENT_SECRET'] = google_client['CLIENT_SECRET']
ENV['GOOGLE_CLIENT_SCOPE'] = google_client['CLIENT_SCOPE']
Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_oauth2, ENV["GOOGLE_CLIENT_ID"], ENV["GOOGLE_CLIENT_SECRET"],
{ name: "google",
scope: ENV['GOOGLE_CLIENT_SCOPE'],
prompt: "consent"
}
end
OmniAuth.config.on_failure = SomeController.action(:oauth_failure)
Run Code Online (Sandbox Code Playgroud)
希望这对您有帮助。