我刚用 Authentik OAuth2 实现了这个功能,但在 oauth2 user json url 设置上遇到了一些麻烦。我使用了 Authentik 的 user_info 端点(/application/o/userinfo/),但我不知道如何映射字段。对于任何想了解如何设置 Discourse 与 Authentik 的 OAuth2 的人,这里是总结:
- 用户 ID 路径:
preferred_username - 用户名路径:
preferred_username - 姓名路径:
name - 邮箱路径:
email - 邮箱已验证路径:
email_verified - 头像:空。
我遇到了以下问题:
- 一开始,我在 JSON URL
https://DOMAIN/application/o/userinfo/中忘记了末尾的斜杠。这导致用户信息请求(源永久链接)返回 301 HTTP 状态码,导致登录失败。我不知道按规范是否应该有末尾的斜杠,但也许应该正确处理 301。 - 调试这个过程很棘手。
oauth2 debug auth设置非常有用,但是……Logster 会在实际转储有意义的响应数据之前截断调试日志。我不得不手动修改容器中的日志行:
也许可以更新那行日志?我想这可以帮助其他人找出 JSON 属性路径。log("user_json_response: #{user_json_response.status} #{user_json_response.headers} #{user_json_response.body}")