Discourse come identity provider non funziona su localhost

Ho configurato Discourse localmente. Ora sto cercando di usare Discourse come identity provider. Ho seguito questa guida

ma sto ricevendo un errore

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

Nota: il mio client che effettua la richiesta è su localhost e anche il server Discourse è su localhost.
Ho provato a cercare domande simili online ma non ho trovato aiuto. Sto anche pubblicando il mio codice Node.js come riferimento

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

Qualcuno può aiutarmi a capire perché non funziona? Grazie

Sono abbastanza sicuro che richieda https che non funziona su localhost.

@pfaffman Funziona in locale. Si scopre che è stato un errore da parte mia. Ma ora sto riscontrando un problema: quando vengo reindirizzato alla pagina di discourse, inserisco il mio nome utente e la password e clicco su login, ma non vengo reindirizzato di nuovo al mio sito web. Ho letto un post simile qui Discourse doesn't redirect to return_sso_url after user logs in on private site - #4 by simon ma hanno risolto quel problema per i login social (credo non per l’autenticazione nome utente-password). Puoi aiutarmi in merito? Grazie.

1 Mi Piace