Je rencontre un problème similaire à celui décrit à la fin de ce sujet : Configure Google login for Discourse - #205. Cependant, dans mon cas, l’erreur renvoyée par Google indique que l’URI de la requête correspond à la version HTTP de mon site, alors que je force l’accès en HTTPS et que c’est bien cette adresse que j’ai configurée chez Google. Mon site Discourse est placé derrière un serveur Apache, qui est configuré pour rediriger les URLs HTTP vers HTTPS, et l’option force_https est activée dans les paramètres de Discourse.
Ai-je raison de supposer que l’erreur de Google indique que Discourse envoie l’adresse HTTP au lieu de l’adresse HTTPS pour la redirection, malgré l’activation de force_https ? Existe-t-il un autre paramètre que je pourrais activer pour corriger cela ?
J’ai essayé d’ajouter l’URL HTTP dans la configuration du client chez Google. Cela m’a permis d’atteindre l’étape de sélection d’un compte Google et d’autorisation, mais lors de la redirection vers mon site, le message suivant s’affiche : « Désolé, une erreur est survenue lors de l’autorisation de votre compte. Peut-être n’avez-vous pas approuvé l’autorisation ? ». Le journal d’erreurs contient cette erreur : « (google_oauth2) Échec de l’authentification ! csrf_detected : OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF détecté ». Il semble donc que l’authentification Google considère la redirection de l’adresse HTTP vers l’adresse HTTP comme une tentative de falsification.
Je vois une erreur similaire dans le journal pour l’authentification GitHub (redirect_uri_mismatch), ce qui suggère que l’adresse HTTP est probablement également envoyée pour la redirection API dans ce cas.
Avez-vous des suggestions ?