开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
  1. Home
  2. Computer Science
  3. This article

Discourse 使用 DiscourseConnect 来进行用户数据同步

2024年05月22日 372Browse 0Like 0Comments

我们都知道 Discourse 的用户管理和设置都高度依赖电子邮件。

如果 Discourse 没有设置电子邮件 SMTP 的话,作为管理员是没有办法对用户邮箱进行修改并且通过验证的。

可以采取的办法是通过 Discourse 的 DiscourseConnect 来进行用户同步。

根据官方的说法:使用 DiscourseConnect 对 用户邮箱进行修改是不会对邮箱的合法性进行校验的,默认的情况下是你已经对用户邮箱进行校验了。

这个 DiscourseConnect 有些配置是需要配置的,可以通过对 API 接口的调用来完成。

调用的方法为 POST。

Discourse 的配置

默认情况下 DiscourseConnect 是关闭的,所以需要在 Discourse 中启用 DiscourseConnect 才可以。

在配置中搜索:DiscourseConnect 关键字。

 

2024-05-21_18-18-56

 

上面图片中的 3 个配置是需要进行配置的。

discourse connect url : 是 DiscourseConnect 的调用配置地址。这个地址通常是你网站的域名后添加 DiscourseConnect/start。

这个配置是必须要配置的。

discourse connect secret:这是用来在客户端对数据进行 hmac 算法加密时候使用的。如果这个地方修改了,后面的加密算法就会出现错误字符串,那么 API 调用就会失败。
这个字符串是随机的,你可以随便生成自己的字符串,然后告诉后面程序中这个字符串是什么。

enable discourse connect:启用 DiscourseConnect 接口连接。在完成上面的 2 个选项配置后,就可以启用接口了。这个时候 Discourse 实例就才可以接受 SSO 用户数据。

访问基本参数

要完成 API 调用,有下面的 4 个参数在访问之前必须获得。

参数名称 值
apiKey 4fe83002bb5fba8c9a61a65e5b4b0a3cf8233b0e4ccafc85ebd6607abab4651a
apiUser system
connectSecret jdhb19*Xh3!nu(#k
url https://www.isharkfly.com/admin/users/sync_sso

在上面的 4 个参数中,需要注意的是 connectSecret,只有这个是在 DiscourseConnect 中设置的。

其他的参数为 Discourse API 调用的默认参数。

构建 POST 请求

在发送的 POST 中是一个 JSON 格式的数据。

这个数据为:

  body: JSON.stringify({
    sso: ssoPayload,
    sig: signature,
  })

上面的 JSON 格式是 2 个参数,一个为 SSO,另外一个 SIG。

SSO 是 Base64的数据,sig 是加密后的数据。

ssoPayload = Buffer.from(ssoRecord, 'utf8').toString('base64');
signature = crypto.createHmac('sha256', connectSecret).update(ssoPayload).digest('hex');

加密算法使用的是 SHA256,摘要算法为 hex。

当上面的数据都准备完全后,就可以把数据发送到服务器上了。

数据结果

如果用户数据没有问题,那么将会创建一个 SSO 的数据。

在 Discourse 的后端将会看到下面的内容。

 

2024-05-21_23-18-08

 

后端显示的 SSO 添加的用户数据。

上面有个最重要的 External ID。

 

https://www.isharkfly.com/t/discourse-discourseconnect/15776

Tags: None
Last updated:2024年05月22日

HoneyMoose

有温度的人文和独立的思考

Like
< Previous
Next >

Comments

Cancel reply

Archives
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,362)
    • Confluence (663)
    • Gradle (12)
  • U.S. (482)
  • 文化旅游 (145)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1