Posso usare l'API di Discourse per autenticare gli utenti in un'altra app?

Ecco 20 righe di codice Python che fanno approssimativamente la stessa cosa del codice React Native a cui si riferisce @renato (tranne che non c’è compatibilità con Discourse 2.5 - non ne ho bisogno)

Funziona bene, assumendo che tu stia utilizzando l’autenticazione di base basata su nome utente e password. Esaminerò ancora i metodi alternativi, utilizzando l’autenticazione SSO di Discourse come configurato nell’istanza di Discourse.

import requests
import json

def discourse_authenticate(url, name, password):
    session = requests.Session()
    session.headers.update({'X-Requested-With': 'XMLHttpRequest'})
    r1 = session.get(url + '/session/csrf')
    csrf_token = json.loads(r1.text).get('csrf')
    r2 = session.post(url + '/session',
        data={
            'login': name,
            'password': password,
            'authenticity_token': csrf_token,
        },
    )
    if r2.status_code != 200:
        return None
    return json.loads(r2.text)