strategies rails google ruby-on-rails omniauth

ruby-on-rails - rails - omniauth-google-oauth2



Obteniendo "Error: redirect_uri_mismatch" con google_oauth2 (5)

Compartiendo una solución muy simple de copiar y pegar que funcionó para mí.

Copié todo lo que estaba especificando en mi código como redirectUri es decir, "redirect_uri": "http://127.0.0.1:3001/" y pegué el value de esta key dentro de la configuración de Google que solicita URI de redireccionamiento autorizado . De esta manera estoy asegurado que ambos parámetros son los mismos.

Si se calculara la url , la console.log() y la copiaría desde la ventana de la consola antes de pegarla en la configuración de Google.

Las URL parecen correctas (las actualicé por última vez ayer):

Los archivos también:

omniauth.rb:

provider :google_oauth2, ''MY_CLIENT_ID.apps.googleusercontent.com'', ''MY_CLIENT_SECRET'', :scope => ''https://mail.google.com/mail/feed/atom/'' Error: redirect_uri_mismatch The redirect URI in the request: http://localhost:3000/auth/google_oauth2/callback did not match a registered redirect URI

header.html.erb

<li><%= link_to "Sign in with Google", "auth/google_oauth2" %></li>

rutas.rb:

match ''/auth/:provider/callback'', to: ''sessions#omniauth_create''

Pero estoy recibiendo esto:

> Error: redirect_uri_mismatch The redirect URI in the request: > http://localhost:3000/auth/google_oauth2/callback did not match a > registered redirect URI

(Twitter y Facebook OmniAuth están funcionando perfectamente)

No estoy seguro de cuál es el problema. ¿Alguna sugerencia para arreglar esto?

EDITAR

Cambié el URI a http ...:

Pero sigue recibiendo el mismo error.



Intenté todo lo anterior pero no funcionó para mí. Al final, en mi mensaje de error noté que mi devolución de llamada era ligeramente diferente. Tuve un usuario entre localhost: 3000 y auth. No estoy realmente seguro de por qué.

http://localhost:3000/users/auth/google_oauth2/callback

Lo cambié, esperé 30 minutos y funcionó.


Parece que la solicitud está llegando a http://localhost:3000/auth/google_oauth2/callback , pero su URI de redireccionamiento especificado que coincide con el patrón similar es para https . Añadir http://localhost:3000/auth/google_oauth2/callback a su lista de redirecciones puede resolver ese problema.

EDITAR: Otra solución potencial es incluir un trailing / en los URI de redireccionamiento correspondientes, que parecían funcionar en este caso.


foo

vi config / initializers / omniauth.rb OmniAuth.config.full_host = ''https://localhost:3000'' Rails.application.config.middleware.use OmniAuth::Builder do provider :google_oauth2, ''google_client_id'', ''google_client_secret'' end