Discourse als Identitätsanbieter funktioniert nicht auf localhost

Ich habe Discourse lokal eingerichtet. Jetzt versuche ich, Discourse als Identitätsanbieter zu verwenden. Ich bin dieser Anleitung gefolgt:

aber ich bekomme einen Fehler:

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

Hinweis: Mein Client, der die Anfrage stellt, befindet sich auf localhost und der Discourse-Server befindet sich ebenfalls auf localhost.
Ich habe versucht, online nach ähnlichen Fragen zu suchen, konnte aber keine Hilfe finden. Ich poste auch meinen Node.js-Code als Referenz:

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}`)
})

Kann mir bitte jemand helfen herauszufinden, warum es nicht funktioniert? Danke.

Ich bin ziemlich sicher, dass es https erfordert, was auf dem lokalen Host nicht funktioniert.

@pfaffman Es funktioniert auf localhost. Es stellt sich heraus, dass es ein Fehler von meiner Seite war. Aber jetzt habe ich ein Problem: Wenn ich zur Discourse-Seite weitergeleitet werde, gebe ich meinen Benutzernamen und mein Passwort ein und klicke auf Anmelden, aber es leitet mich nicht zurück zu meiner Website. Ich habe einen ähnlichen Beitrag hier gelesen: Discourse doesn't redirect to return_sso_url after user logs in on private site - #4 by simon, aber sie haben dieses Problem für soziale Anmeldungen behoben (ich schätze, nicht für die Benutzername-Passwort-Authentifizierung). Können Sie mir dabei helfen? Danke

1 „Gefällt mir“