Voici 20 lignes de code Python qui font approximativement la même chose que le code React Native référencé par @renato (sauf qu’il n’y a pas de compatibilité avec Discourse 2.5 - je n’en ai pas besoin)
Cela fonctionne bien, en supposant que vous utilisez une connexion de base par nom d’utilisateur et mot de passe. Je vais toujours examiner les méthodes alternatives, en utilisant la connexion SSO de Discourse telle que configurée dans l’instance 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)