Fluxo de login (Flask -> Discourse -> Flask) com OAuth

Olá!

Tenho duas perguntas relacionadas; espero que alguém possa ajudar :slight_smile:

Configurei minha instância do Discourse para suportar OAuth via Twitter, Facebook e Google. O que estou tentando fazer é o seguinte:

Cenário 1:

  1. O usuário acessa /home (aplicativo Python/Flask)
  2. Ele deseja se cadastrar em uma conta do Discourse.
  3. Ele é redirecionado para o fluxo OAuth apropriado, por exemplo, https://discourse.example.com/auth/google.
  4. Posso redirecioná-lo de volta para /home após ele concluir o cadastro?

Cenário 2:

  1. O usuário acessa /home (aplicativo Python/Flask)
  2. Ele já possui uma conta no Discourse.
  3. Ele deseja fazer login no aplicativo principal usando OAuth para acessar uma página protegida.
  4. Ele é redirecionado para o fluxo OAuth apropriado.
  5. Posso redirecioná-lo para /user assim que o Discourse verificar as credenciais da conta dele?

Por favor, me avise se algo não estiver claro e ficarei feliz em detalhar mais!

Obrigado!

Caso você ainda não tenha visto, nossa documentação está em Discourse OAuth2 Basic. Isso responde a algumas das perguntas que você está procurando?

Obrigado pela resposta, @rishabh!

Infelizmente, pelo que pude verificar, a documentação não aborda minhas dúvidas. Minhas configurações de OAuth estão funcionando conforme o esperado; apenas as funcionalidades adicionais descritas nos cenários 1 e 2 estão causando problemas.

O que estou procurando é algo como um parâmetro opcional, callback_url, que redirecionaria o usuário para a URL de destino após o provedor de OAuth ter verificado sua conta e o ter retornado ao Discourse.

Acho que é como se minha instância do Discourse atuasse como um provedor de OAuth em si mesma para meu aplicativo Flask/Python?

Por exemplo: https://discourse.example.com/auth/google?callback_url=https://example.com/home leva o usuário ao Google, o retorna ao Discourse, que por sua vez o redireciona para a callback_url.