Discourse como proveedor de identidad no funciona en localhost

Configuré Discourse localmente. Ahora estoy intentando usar Discourse como proveedor de identidad. Seguí esta guía:

pero estoy recibiendo un error:

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

Nota: mi cliente que realiza la solicitud está en localhost y el servidor de Discourse también está en localhost.
Intenté buscar preguntas similares en línea pero no encontré ayuda. También publico mi código de Node.js como referencia:

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

¿Alguien puede ayudarme a averiguar por qué no funciona? Gracias.

Estoy bastante seguro de que requiere https, lo que no funciona en localhost.

@pfaffman Funciona en localhost. Resulta que fue un error de mi parte. Pero ahora me encuentro con un problema: cuando me redirige a la página de Discourse, introduzco mi nombre de usuario y contraseña y hago clic en iniciar sesión, pero no me redirige de vuelta a mi sitio web. Leí una publicación similar aquí Discourse doesn't redirect to return_sso_url after user logs in on private site - #4 by simon, pero ellos solucionaron ese problema para los inicios de sesión sociales (supongo que no para la autenticación de nombre de usuario y contraseña). ¿Puedes ayudarme con eso? Gracias.

1 me gusta