Receio que não haja uma resposta fácil. APIs de autenticação como esta são projetadas especificamente para evitar que sejam acionadas sem interação real do usuário na web.
Para o seu caso de uso, a solução mais comum seria usar o sistema de chaves de API de usuário. Isso permitirá que o Discourse lide com 100% da lógica de autenticação e fornecerá ao seu aplicativo chaves de API por usuário. Essa estratégia deve ser muito mais robusta do que tentar “fingir” uma sessão de usuário.