首页
学习
活动
专区
工具
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
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 唯品会:授权流程说明

    您的应用和唯品会开放平台对接后,需要获取有关用户(包括供应商)受限访问的隐私数据(如:商品、订单等),为保证用户数据的安全性与隐私性,您的应用需要取得用户的授权。在这种情况下,您的应用需要引导用户完成“使用唯品会帐号登录并授权”的流程。 目前的授权过程采用OAuth2.0协议,如果想了解这个协议更多的技术细节请参见官方说明:http://oauth.net/2/。 如果您是ISV软件商需要引导用户到授权页面,并且这个用户拥有一个唯品会的账号和密码,同时完成此账号和供应商ID的绑定认证。步骤如下: 1,ISV软件商完成应用审核和沙箱联调 2,使用ISV软件的供应商到VOP站点完成 供应商身份的认证操作 (注:接入MarketPlace无需此步骤) 3,ISV软件引导供应商完成授权 4,供应商可以正常使用ISV软件

    02

    基于PHP方法,微信公众号小程序获取code,access_token,openid,用户信息

    //发起获得code值链接 public function doPageGetcode() { appid=′yourappid′;//修改你的appidif(!appid = 'yourappid';//修改你的appid if (!appid=′yourappid′;//修改你的appidif(!appid) { return this->result(10008, '参数错误', ''); } //这里的redirect_uri地址需要http://,跳转对于登录doPageOpenid方法,在微信公众号上面也有添加这个域名wx.owen.com/ redirect_uri=urlencode("[http://wx.owen.com/doPageOpenid](http://wx.owen.com/doPageOpenid)");redirect\_uri = urlencode("[http://wx.owen.com/doPageOpenid](http://wx.owen.com/doPageOpenid)"); redirect_uri=urlencode("[http://wx.owen.com/doPageOpenid](http://wx.owen.com/doPageOpenid)");url = "open.weixin.qq.com/connect/oau…" . appid . "&redirect\_uri=" . redirect_uri . "&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect"; header('location:' . $url); }

    02

    QQ、新浪微博、码云和百度的第三方登录

    很多网站在刚刚起步的时候都会使用第三方登录来吸引流量。当然,其中也包括我。我的网站上现在是接入了QQ、新浪微博、码云和百度的第三方登录功能.接入这些功能时我发现了一些规律,在这里分享给大家,大家需要接入的话看这一篇文章就可以了。 首先,第一步,也是不得不做的,进入你要接入的开放平台申请账号、填写资料等待审核等。填写资料的时候需要注意的地方是回调地址,这个回调地址就是用户在第三方平台登陆成功以后返回到你的程序的页面。以我的网站为例,我的回调地址就是个人中心,也就是说用户登陆后会进入个人中心页面。(在这里小小的吐槽一下wx,想要接入还得进行开发者认证,人民币300元,不知道为了啥)。

    00
    领券