Discourse API를 사용하여 다른 앱에서 사용자를 인증할 수 있나요?

@renato가 언급한 React Native 코드와 거의 동일한 작업을 수행하는 Python 코드 20줄입니다. (다만 Discourse 2.5와의 호환성은 없습니다. 저는 그 기능이 필요하지 않으므로요)

기본적인 사용자 이름-비밀번호 기반 로그인을 사용한다고 가정하면 잘 동작합니다. Discourse 인스턴스에 설정된 Discourse SSO 로그인을 사용하는 대안적인 방법들도 여전히 살펴보겠습니다.

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)