Encontrando um usuário pelo 'external ID' do provedor de identidade

:bookmark: Este guia explica como encontrar um usuário do Discourse com base em seu external_id de um provedor de identidade usando chamadas de API.

:person_raising_hand: Nível de usuário necessário: Administrador

Ao usar um sistema de autenticação externo, o Discourse mantém o controle de dois IDs de usuário: o user_id do Discourse e um external_id do provedor de identidade. Se você precisar procurar um usuário do Discourse com base no external_id, este artigo howto é para você! Abaixo, você aprenderá como realizar essa operação.

Configuração da API

Primeiro, certifique-se de ter configurado corretamente uma chave de API de administrador. Para mais informações sobre como configurar e usar a API do Discourse, consulte a documentação da API do Discourse.

DiscourseConnect

Se você estiver usando o DiscourseConnect (anteriormente conhecido como Discourse SSO), você pode buscar um usuário com a seguinte chamada de API:

curl https://myforum.example.com/u/by-external/{external-id}.json \
     -H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
     -H "Api-Username: discourse1"

Substitua {external-id} pelo ID externo real do usuário que você está procurando. Se um usuário for encontrado, suas informações serão retornadas. Caso contrário, um 404 será retornado.

Outro Provedor de Autenticação

Isso funciona para todos os métodos principais, bem como para plugins que usam o framework “ManagedAuthenticator” (incluindo discourse-openid-connect e discourse-oauth2-basic).

Primeiro, encontre o ‘nome do provedor’ (provider name) do seu autenticador. Isso normalmente está contido na URL de callback (por exemplo, se a URL de callback for /auth/oauth2_basic/callback, então o nome do provedor é oauth2_basic).

Em seguida, você pode buscar um usuário assim:

curl https://myforum.example.com/u/by-external/{provider}/{external-id}.json \
     -H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
     -H "Api-Username: discourse1"

Substitua {provider} pelo nome do provedor real e {external-id} pelo ID externo do usuário que você está procurando. Se um usuário for encontrado, suas informações serão retornadas. Caso contrário, um 404 será retornado.

Recursos Adicionais

15 curtidas