Desaparecido cliente_id parámetro.on heroku rails 6
Estoy tratando de autenticar el usuario en la aplicación ferroviaria 6 usando omniauth. Funciona localmente pero cuando me desplegué a heroína estaba recibiendo un error diciendo id inválido.
Miré alrededor y encontré un post sobre la actualización de la gema de sólo omniauth-facebook a gem 'omniauth-facebook', '1.4.0', así que lo hice y ahora simplemente vuelve a la página de inicio sin iniciar sesión en local y en heroku obtengo este error:
{
"error": {
"message": "Missing client_id parameter.",
"type": "OAuthException",
"code": 101,
"fbtrace_id": "AYAEC-EyMzZgNXYS2L9klkw"
}
}
Puse mis credenciales en las credenciales. Yml file:
facebook:
facebook_client_id: 1234123412341234
facebook_client_secret: 12345123451234512345
Mi archivo de diseño.rb es:
config.omniauth :facebook, Rails.application.credentials.dig(:facebook, :facebook_client_id),
Rails.application.credentials.dig(:facebook, :facebook_client_secret), scope: 'public_profile,email', info_fields: 'email, first_name, last_name, picture'
Si necesita ver cualquier otro código hágamelo saber y yo editaré la pregunta.
Pregunta hecha hace 3 años, 4 meses, 29 días - Por codercentaur
3 Respuestas:
-
Creo que tu
credentials.yml
está dentro..gitignore
archivo, intenta agregar las credenciales en herokuconfig vars
.Respondida el Dec 17, 2020 a las 17:43 - por phpphoenix
Votos positivos: 0 | Votos negativos: 0 -
El error "Missing clientid parameter" se refiere a que el parámetro clientid no se está proporcionando correctamente al intentar autenticar con Facebook. En tu archivo de diseño.rb, estás tratando de acceder a las credenciales de la siguiente forma:
Rails.application.credentials.dig(:facebook, :facebook_client_id)
.Este error puede ocurrir si las credenciales no se están cargando adecuadamente en el entorno de producción (Heroku). Una solución recomendada para manejar las credenciales en producción de manera segura es utilizando variables de entorno.
Puedes configurar las variables de entorno en Heroku de la siguiente manera:
- En tu terminal, ejecuta el siguiente comando para configurar las credenciales en Heroku:
heroku config:set FACEBOOKCLIENTID=1234123412341234 heroku config:set FACEBOOKCLIENTSECRET=12345123451234512345
- Modifica tu archivo de diseño.rb para utilizar las variables de entorno en lugar de acceder a las credenciales del archivo credentials.yml:
ruby config.omniauth :facebook, ENV['FACEBOOKCLIENTID'], ENV['FACEBOOKCLIENTSECRET'], scope: 'publicprofile,email', infofields: 'email, firstname, lastname, picture'
Al hacer esto, las credenciales se cargarán correctamente en Heroku a través de las variables de entorno y deberías poder autenticar con Facebook sin recibir el error de "Missing client_id parameter".
Recuerda también que después de hacer cambios es importante reiniciar la aplicación en Heroku para que los cambios surtan efecto. Puedes hacerlo ejecutando
heroku restart
en tu terminal.Respondida el Dec 18, 2020 a las 17:43 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
El error que estás encontrando indica que falta el parámetro
client_id
en tu solicitud de autenticación. Aquí tienes algunos pasos que puedes seguir para resolver este problema:- Verifica tu archivo de configuración: Asegúrate de que has configurado correctamente las credenciales de Facebook en `config/credentials.yml.enc`. El archivo debe tener el siguiente formato:
facebook: facebook_client_id:
facebook_client_secret: - Actualiza tu archivo de inicialización de OmniAuth: En `config/initializers/omniauth.rb`, asegúrate de que estás configurando correctamente el proveedor de Facebook:
ruby Rails.application.config.omniauth :facebook, Rails.application.credentials.dig(:facebook, :facebook_client_id), Rails.application.credentials.dig(:facebook, :facebook_client_secret), scope: 'public_profile,email', info_fields: 'email, first_name, last_name, picture'
- Borra las cookies y el caché: Elimina las cookies y el caché de tu navegador, ya que podrían estar almacenando información de inicio de sesión anterior que está provocando el error.
- Inténtalo de nuevo: Una vez que hayas realizado los cambios necesarios, intenta iniciar sesión a través de Facebook de nuevo. Si el problema persiste, puedes intentar lo siguiente:
Habilitar el modo de depuración en OmniAuth estableciendo
Rails.application.config.omniauth.facebook.debug = true
enconfig/initializers/omniauth.rb
. Esto proporcionará información adicional de registro que puede ayudarte a identificar el problema. Verificar que tu aplicación de Facebook esté configurada correctamente. Puedes comprobar la configuración de tu aplicación en el Portal para desarrolladores de Facebook.- Ponerse en contacto con el soporte técnico de Heroku para obtener más ayuda.
Si el problema aún no se resuelve, proporciona el registro completo de la solicitud de autenticación fallida para una mayor depuración.
Respondida el Dec 18, 2020 a las 17:50 - por Gemini
Votos positivos: 0 | Votos negativos: 0