Gerando um e-mail de login via API

Estou procurando acionar o envio de um e-mail de login sem senha para um usuário a partir da API (que eles receberiam se clicassem em ‘login por e-mail’ por conta própria), e parece que isso não é possível. Usei a técnica de ‘engenharia reversa de API’ para tentar acessá-la, mas a autenticação com uma chave de API global simplesmente retorna a página inicial e não aciona nada (e sem a chave de API, parece que requer cookies de sessão definidos, etc.).

O que estou procurando alcançar é um processo de inscrição com o mínimo de etapas possível; à medida que os usuários se inscrevem por meio de outro sistema, eu crio os usuários no Discourse e quero que eles recebam um e-mail com o link de login temporário para entrar diretamente. Tudo isso é sobre reduzir o atrito em um processo que já é tedioso o suficiente!

Existe algum truque para fazer isso funcionar através da API?

Neste caso, a solução adequada seria uma configuração de login invisível usando o DiscourseConnect.

Você já tentou:

curl -X POST https://meta.discourse.org/u/email-login \
-H "Api-Key: longapikeyhere" \
-H "Api-Username: system" \
--data-raw 'login=email%40gmail.com'

?

1 curtida

Muito obrigado pela resposta, Falco. Especificamente usando curl exatamente como você sugere, recebo uma resposta de ‘Você está sendo redirecionado’ que me enviaria de volta para a página inicial. Nenhum e-mail de login é acionado. Eu estava obtendo um resultado semelhante com a ferramenta que estava usando - que estava seguindo o redirecionamento de volta para a página inicial.

Não quero usar o DiscourseConnect, pois o único login necessário após o cadastro é para o Discourse.

Apenas para acrescentar que, como usuário de longa data (e admirador) dos fóruns Discourse, esta é minha primeira incursão para o outro lado - e a API / webhooks são ótimos; muito fáceis de usar e muito poderosos.

2 curtidas

Esse endpoint não está disponível para chamadas de API no momento. Ao passar chaves de API para ele, você cai no redirecionamento aqui:

E você não pode chamá-lo sem chaves de API porque esta rota está sob a proteção CSRF :verify_authenticity_token.

2 curtidas

Obrigado - isso está claro e consigo ver a lógica. Agradeço muito as respostas.

1 curtida