# Discourse como provedor de identidade não funcionando em localhost

**URL:** <https://meta.discourse.org/t/discourse-as-an-identity-provider-not-working-in-localhost/228885>\
**Category:** SSO\
**Created:** [Junho 2, 2022, 8:34pm UTC](https://meta.discourse.org/t/discourse-as-an-identity-provider-not-working-in-localhost/228885 "2022-06-02T20:34:16Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![Devarsh\_Mavani](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/devarsh_mavani/32/251071_2.png) [@Devarsh\_Mavani](https://meta.discourse.org/u/Devarsh_Mavani)\
**Post date:** [Junho 2, 2022, 8:34pm UTC](https://meta.discourse.org/t/discourse-as-an-identity-provider-not-working-in-localhost/228885/1 "2022-06-02T20:34:16Z")

</div>

Configurei o Discourse localmente. Agora estou tentando usar o Discourse como provedor de identidade. Segui este guia

> [@Usar Discourse como provedor de identidade (SSO, DiscourseConnect)](https://meta.discourse.org/t/using-discourse-as-an-identity-provider-sso-discourseconnect/32974):
>
> Então você quer usar o Discourse como provedor de identidade para sua própria aplicação web? Ótimo! Vamos começar. Habilitar a configuração do provedor [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) Em Configurações do site de administração do Discourse (/admin/site\_settings), habilite a configuração enable discourse connect provider e adicione uma string secreta a discourse connect provider secrets (usada para hash de payloads SSO). Implementar o [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) em sua aplicação web: Gere um nonce aleatório [nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce). Vamo…

mas estou recebendo um erro

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

```

Observação: meu cliente que faz a solicitação está em localhost e o servidor Discourse também está em localhost.  
Tentei procurar por perguntas semelhantes online, mas não encontrei ajuda. Também estou postando meu código Node.js como referência

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

```

Alguém pode me ajudar a descobrir por que não está funcionando? Obrigado.

---

_[View the full topic](https://meta.discourse.org/t/discourse-as-an-identity-provider-not-working-in-localhost/228885)._
