Flux de connexion (Flask -> Discourse -> Flask) avec OAuth

Salut !

J’ai deux questions qui sont liées, j’espère que quelqu’un pourra m’aider :slight_smile:

J’ai configuré mon instance Discourse pour prendre en charge OAuth via Twitter, Facebook et Google. Voici ce que je souhaite faire :

Scénario 1 :

  1. L’utilisateur atterrit sur /home (application Python/Flask)
  2. Il souhaite créer un compte Discourse.
  3. Il est redirigé vers le flux OAuth approprié, par exemple https://discourse.example.com/auth/google.
  4. Puis-je le rediriger vers /home une fois son inscription terminée ?

Scénario 2 :

  1. L’utilisateur atterrit sur /home (application Python/Flask)
  2. Il possède déjà un compte Discourse.
  3. Il souhaite se connecter sur l’application principale via OAuth pour accéder à une page protégée.
  4. Il est redirigé vers le flux OAuth approprié.
  5. Puis-je le rediriger vers /user une fois que Discourse a vérifié ses identifiants ?

N’hésitez pas à me dire si quelque chose n’est pas clair, je serai ravi de préciser !

Merci !

Au cas où vous ne l’auriez pas encore vu, notre documentation se trouve à l’adresse Discourse OAuth2 Basic. Cela contient-il certaines des réponses que vous recherchez ?

Merci pour ta réponse @rishabh !

Malheureusement, à ce que je vois, la documentation ne couvre pas mes questions. Mes configurations OAuth fonctionnent comme prévu ; seules les fonctionnalités supplémentaires décrites dans les scénarios 1 et 2 posent problème.

Ce que je recherche, c’est quelque chose comme un paramètre facultatif, callback_url, qui redirigerait l’utilisateur vers son URL cible, après que le fournisseur OAuth a vérifié son compte et le lui a renvoyé vers Discourse.

Je suppose que c’est un peu comme si mon instance Discourse agissait elle-même en tant que fournisseur OAuth pour mon application Flask/Python ?

Par exemple : https://discourse.example.com/auth/google?callback_url=https://example.com/home emmène l’utilisateur sur Google, le renvoie vers Discourse, qui à son tour le redirige vers callback_url.