首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rails错误‘google_omniauth2 : redirect_uri_mismatch’

google_omniauth2 : redirect_uri_mismatch 错误通常发生在使用 OmniAuth 和 Google OAuth2 进行用户认证时。这个错误提示表明你在 Google API 控制台中配置的重定向 URI 与你的应用程序实际使用的重定向 URI 不匹配。

以下是一些解决这个问题的步骤:

1. 检查 Google API 控制台中的重定向 URI

  1. 登录到 Google API 控制台。
  2. 选择你的项目。
  3. 点击左侧菜单中的“OAuth 同意屏幕”。
  4. 确保“已发布”状态。
  5. 点击“OAuth 2.0 客户端 ID”。
  6. 在“授权重定向 URI”部分,检查你列出的重定向 URI 是否与你的应用程序实际使用的重定向 URI 匹配。

2. 更新 Rails 应用程序中的重定向 URI

确保你的 Rails 应用程序中配置的重定向 URI 与 Google API 控制台中的一致。

使用 omniauth-google-oauth2 gem

如果你使用的是 omniauth-google-oauth2 gem,可以在 config/initializers/omniauth.rbconfig/initializers/devise.rb 中配置重定向 URI:

代码语言:javascript
复制
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET'], {
    redirect_uri: 'http://your-app-domain.com/auth/google_oauth2/callback'
  }
end

确保 redirect_uri 与 Google API 控制台中配置的完全一致。

3. 检查环境变量

确保你的环境变量中配置的 GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRET 是正确的,并且与 Google API 控制台中的一致。

4. 清除缓存

有时候,浏览器缓存可能会导致重定向 URI 不匹配的问题。尝试清除浏览器缓存或使用隐身模式进行测试。

5. 重新授权应用

如果以上步骤都没有解决问题,尝试在 Google 账户中移除该应用的授权,然后重新授权。

示例配置

以下是一个完整的示例配置:

代码语言:javascript
复制
# config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET'], {
    redirect_uri: 'http://your-app-domain.com/auth/google_oauth2/callback',
    scope: 'email profile',
    prompt: 'consent',
    image_aspect_ratio: 'square',
    image_size: 50
  }
end
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券