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