我收到此错误:OAuth2 :: Error redirect_uri_mismatch
这就是我根据omniauth-google-oauth2's documentation设置omniauth.rb的方式。
# config/initializers/omniauth.rb
OmniAuth.config.logger = Rails.logger
OmniAuth.config.full_host = Rails.env.production? ? 'https://www.********.org' : 'http://localhost:3000'
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV['FACEBOOK_OAUTH_CLIENT_ID'], ENV['FACEBOOK_OAUTH_SECRET']
provider :google_oauth2, ENV['GOOGLE_OAUTH_CLIENT_ID'], ENV['GOOGLE_OAUTH_SECRET'], {scope: 'profile', image_aspect_ratio: 'square', image_size: 48, access_type: 'online'}
end
这就是我将routes.rb设置为处理回调的方式:
# config/routes.rb
get 'auth/:provider/callback', to: 'sessions#create'
Here's a screenshot of my Google Developer Console,我的授权重定向uri设置为http://localhost:3000/auth/google_oauth2/callback
。
我的尝试仅为http://localhost:3000
,https
和http://localhost/auth/google_oauth2/callback
以及其他几种变体。
有些人说控制台可能需要一段时间才能更新,所以我想知道我是否有可能在某些时候尝试过正确的事情并且没有给它足够的时间(超过5分钟?)来更新。
Facebook的回调(Facebook开发者控制台上的http://localhost:3000/auth/facebook/callback
)工作,带我一直到SessionsController的#create动作,我还没有添加处理它的方法,所以它引发了一个错误那里。
有人能发现我做错了吗??