大家好,
我需要一些关于如何使用现有的 Discourse 用户名和密码让用户登录到远程网站的指导。
我认为我不需要 SSO……原因如下。
首先,介绍一下我现有的使用场景以及为什么我不喜欢它。
我目前有一个网站 https://www.example.com,上面有一个登录按钮。
当用户点击登录按钮时,系统会要求他们输入现有的 Discourse 用户名和电子邮件地址(注意:是用户名 + 电子邮件,而不是密码)。
然后,我将这两条信息用于向以下地址发起 API GET 请求:
"https://mydiscourse.comm/admin/users/list/all.json?email=" + strEmail
在我发起的此 API 调用中,我在请求头中包含了“系统”用户账户名称以及该系统用户关联的 API 密钥。
如果找到匹配的电子邮件地址,我会将用户在表单中提供的用户名与该电子邮件地址对应的 API 响应中返回的用户名进行比较。
如果匹配,我就认为该用户已在我的网站 https://www.example.com 上登录。
我大约在三、四年前构建了这套系统,至今仍然运行良好。
但是……
-
让用户在登录表单中输入“用户名 + 电子邮件”组合非常令人困惑
– 大多数人总是习惯输入“用户名 + 密码”
– 尽管我在表单各处都提供了大量说明,但人们仍然会自然地弄错 -
这种方式不够安全
– 只要知道用户名和电子邮件地址,凭借这两项(微不足道的)信息,就可以非常容易地以该用户的身份登录到 https://www.example.com
我希望用户点击 https://www.example.com 上的登录按钮后,输入他们现有的 Discourse 用户名和密码(而不是用户名 + 电子邮件!)。
然后,我的网站 example.com 会向 Discourse 发起一个快速的 API 请求,确认提供的用户名和密码组合是否正确,并返回该用户现有的 Discourse 用户 ID。
希望我的描述足够清晰:grimacing
我已经查阅了所有 API 文档,但无论如何也找不到一个简单的“登录”端点?![]()
我并不需要在 Discourse 本身中让用户登录或登出,我只需要确认他们的用户名和密码是否正确。
任何提示、指导、链接或建议都非常欢迎:blush