我可以使用 Discourse API 在另一个应用程序中验证用户吗?

这是 20 行 Python 代码,其功能与 @renato 引用的 React Native 代码大致相同(除了不支持 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)