Como posso obter cookies para um usuário ou uma 'user-api-key' sem exigir interação do usuário ou redirecionamentos de navegador?

Estou atualmente desenvolvendo uma aplicação que usa o Discourse apenas como uma API. O novo recurso está relacionado a mensagens privadas (PMs), onde estamos usando private_messages. O problema aqui é que precisamos receber atualizações desses tópicos privados (private_messages) através do MessageBus, e atualmente nosso método de autenticação com Username: user.username e Api-Key: admin_api_key não funciona exclusivamente para este caso do MessageBus e tópicos privados; funciona para todo o resto.

Portanto, precisamos de uma maneira de obter e injetar cookies no nosso frontend ao chamar o MessageBus, ou criar uma ‘user-api-key’ e usuário em vez da api-key. Mas precisamos fazer isso apenas via API, já que nosso backend se comunicará com o backend do Discourse e provisionará tudo. O frontend será o único responsável por receber o cookie ou a user-api-key e adicioná-lo à requisição do MessageBus.

1 curtida

Presumo que isso seja um erro de digitação e você esteja se referindo a MPs? DMs estão relacionadas ao chat.

1 curtida

Que legal!

Não há um endpoint de API HTTP para criar objetos UserApiKey para outros usuários. O endpoint /user-api-key só cria chaves para o usuário logado

Usar o MessageBus seria útil, mas não tenho certeza de como contornar os problemas de autenticação. Você pode precisar fazer polling e/ou confiar em webhooks quando as MPs forem atualizadas.

Sim! Os tópicos com archtype: private_message

1 curtida