Discourse en tant que fournisseur d'identité ne fonctionne pas en localhost

J’ai configuré Discourse localement. J’essaie maintenant d’utiliser Discourse comme fournisseur d’identité. J’ai suivi ce guide

mais je reçois une erreur

GET http://localhost:3000/session/sso_provider?sso=bm9uY2U9MWc3NlQyaHRVZTZTYzJENjVEbzlzUT09JnJldHVybl9zc29fdXJsPWh0dHA6Ly9sb2NhbGhvc3Q6ODA4MS9yZWRpcmVjdA%3D%3D&sig=abcdb4a453080b7bac871d1d8d660bc731cfbc2a26fc6013f19a848c0018461c 422 (Unprocessable Entity)

Remarque : mon client effectuant la requête est sur localhost et le serveur Discourse est également sur localhost.
J’ai essayé de chercher des questions similaires en ligne mais je n’ai trouvé aucune aide. Je poste également mon code Node.js à titre de référence

app.get('/login', (req, res) => {
  let nonce = crypto.randomBytes(16).toString('base64');
  const payload = `nonce=${nonce}&return_sso_url=http://localhost:8081/redirect`
  const base64 = Buffer.from(payload).toString('base64')
  const URL_ENCODED_PAYLOAD = encodeURIComponent(base64)
  let hmac = crypto.createHmac('sha256', 'myrandomstring')
  hmac.update(URL_ENCODED_PAYLOAD)
  let HEX_SIGNATURE = hmac.digest('hex').toLowerCase()
  res.redirect(`http://localhost:3000/session/sso_provider?sso=${URL_ENCODED_PAYLOAD}&sig=${HEX_SIGNATURE}`)
})

Quelqu’un peut-il m’aider à comprendre pourquoi cela ne fonctionne pas ? Merci

Je suis à peu près sûr que cela nécessite https, ce qui ne fonctionne pas sur l’hôte local.

@pfaffman Ça fonctionne sur localhost. Il s’avère que c’était une erreur de ma part. Mais maintenant, je rencontre un problème : lorsque je suis redirigé vers la page Discourse, j’entre mon nom d’utilisateur et mon mot de passe, puis je clique sur connexion, mais cela ne me redirige pas vers mon site web. J’ai lu un post similaire ici Discourse doesn't redirect to return_sso_url after user logs in on private site - #4 by simon, mais ils ont résolu ce problème pour les connexions sociales (je suppose pas pour l’authentification par nom d’utilisateur et mot de passe). Pouvez-vous m’aider à ce sujet ? Merci.

1 « J'aime »