ruby-on-rails - 谷歌omniauth rails与设计身份验证失败
问题描述
我想在我的 Rails 应用程序上使用 Google 添加omniauth,但重定向后出现错误
ERROR -- omniauth: (google_oauth2) Authentication failure! invalid_credentials: OAuth2::Error, redirect_uri_mismatch: Bad Request
{
"error": "redirect_uri_mismatch",
"error_description": "Bad Request"
}
我看到了有关错误重定向 uri 的错误,但没有看到“错误请求”
我在谷歌控制台中的重定向 uri
http://localhost:3000/clients/auth/google_oauth2/callback
我的路线
devise_for :clients, controllers: { omniauth_callbacks: 'clients/omniauth_callbacks' }
宝石文件
gem 'omniauth-oauth2'
gem 'omniauth-google-oauth2'
gem "omniauth-linkedin-oauth2"
gem 'omniauth-rails_csrf_protection', '~> 1.0'
设计
config.omniauth :google_oauth2, ENV["GOOGLE_CLIENT_ID"], ENV["GOOGLE_CLIENT_SECRET"], access_type: "online"
我的链接
<%= link_to "Sign in with Google", client_google_oauth2_omniauth_authorize_path, method: :post %>
解决方案
检查您创建凭据的谷歌开发者帐户。应该有一个名为重定向 URL 的字段,您应该在其中放置正确的 URL。此 URL 用于将用户从使用 google 登录时打开的模式重定向。
推荐阅读
- mysql - MySQL 用户定义函数 - SQL 语法错误
- python - linux中的“python -c'print'”和“(python -c'print'; cat)”有什么区别
- frames - 从视频中提取帧时如何避免视频中重复或相似的帧?
- javascript - 将更改的 HTML 保存到 Javascript 变量?
- actionscript-3 - AS3:如何检测负数
- python-3.x - 将 csv 列表导出为垂直(列)
- ruby - Ruby:在外部模块中调用时未定义 attr_accessor 方法
- swift - NSUserDefaultsController:“尝试将非属性列表对象...设置为键的 NSUserDefaults/CFPreferences 值...”
- matplotlib - 如何用不在当前数据框中的点绘制“最佳拟合线”?
- javascript - 如何在 html 中调用导航包装器上的 stickynavbar 函数?