Hier sind 20 Zeilen Python-Code, die ungefähr das Gleiche tun wie der von @renato erwähnte React Native-Code (außer dass keine Kompatibilität mit Discourse 2.5 besteht – das brauche ich nicht)
Es funktioniert gut, vorausgesetzt, Sie verwenden die grundlegende Anmeldung per Benutzername und Passwort. Ich werde mich trotzdem mit alternativen Methoden befassen, die die in der Discourse-Instanz konfigurierte Discourse SSO-Anmeldung verwenden.
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)