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

我们都知道 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 个参数在访问之前必须获得。

参数名称
apiKey4fe83002bb5fba8c9a61a65e5b4b0a3cf8233b0e4ccafc85ebd6607abab4651a
apiUsersystem
connectSecretjdhb19*Xh3!nu(#k
urlhttps://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。

Discourse 使用 DiscourseConnect 来进行用户数据同步 - Discourse - iSharkFly我们都知道 Discourse 的用户管理和设置都高度依赖电子邮件。 如果 Discourse 没有设置电子邮件 SMTP 的话,作为管理员是没有办法对用户邮箱进行修改并且通过验证的。 可以采取的办法是通过 Discourse 的 DiscourseConnect 来进行用户同步。 根据官方的说法:使用 DiscourseConnect 对 用户邮箱进行修改是不会对邮箱的合法性进行校验的,默认的情况下是你已经对用户邮箱进行校…icon-default.png?t=N7T8https://www.isharkfly.com/t/discourse-discourseconnect/15776

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/17951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何取消公众号的在线客服绑定授权

1,功能设置 2,公众号设置 3,查看详情,取消

开发远程遥控情趣玩具软件,提供现成程序源码应具备哪些基础功能

以“东莞梦情智能”为参考,其提供的现成情趣玩具遥控软件程序源码,所具备哪些基础功能,看看它们如何让情趣玩具变得更加丰富多彩。 一、设备连接 设备连接是情趣玩具遥控软件的基础功能之一。“东莞梦情智能”的现成源码支持多种连接方式&am…

mysql中text,longtext,mediumtext区别

文章目录 一.概览二、字节限制不同三、I/O 不同四、行迁移不同 一.概览 在 MySQL 中,text、mediumtext 和 longtext 都是用来存储大量文本数据的数据类型。 TEXT:TEXT 数据类型可以用来存储最大长度为 65,535(2^16-1)个字符的文本数据。如果存储的数据…

开源VS闭源:谁更能推动AI技术的普及与发展?

一、引言 在人工智能(AI)技术的浪潮中,开源与闭源两种模式一直并存,并各自在推动AI技术普及与发展上发挥着重要作用。然而,关于哪种模式更能有效地推动AI技术的普及与发展,一直存在着激烈的讨论。本文将深…

树莓派指令

1.常用指令 2.在终端窗口编辑文本文件 2.1nano编辑器 在文本里ctrlG就可以查看更多的快捷按键 2.2vi编辑器 进入默认为命令模式

百川股份:大王蹲完,小王蹲

一根大阴线,正丹股份的十倍股传奇之旅即将落幕? 有股民表示:化工板块还有高手,大王倒了还有小王。 今天我们聊的正是化工板块被称为“正丹第二”的百川股份。 虽难比正丹的十倍涨幅,但百川也不简单,3个月…

视频号小店是怎么操作的?适用于所有人的操作玩法!

大家好,我是电商小V 视频号小店是怎么操作的呢?这是刚开始去做,或者是刚了解的小伙伴最疑惑的问题, 视频号小店是22年推出的,也是目前最火的一个创业型项目,也是吸引了不少的商家入驻,今天咱们就…

PLC远程调试

随着工业自动化的快速发展,PLC(可编程逻辑控制器)已经成为现代工业生产线的核心控制设备。然而,传统的PLC调试方式往往受限于地理位置和物理连接,使得工程师在调试过程中面临诸多不便。在这个背景下,HiWoo …

OpenHarmony 实战开发——内核对象队列之算法详解

前言 OpenAtom OpenHarmony(以下简称“OpenHarmony”) LiteOS-M 内核是面向 IoT 领域构建的轻量级物联网操作系统内核,具有小体积、低功耗、高性能的特点。在嵌入式领域的开发工作中,无论是自研还是移植系统,均绕不开…

使用chatglm.cpp本地部署ChatGLM3-6B模型

ChatGLM3模型介绍 ChatGLM3-6B 是 ChatGLM 系列最新一代的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性: 更强大的基础模型: ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base …

Yourpassword does not satisfy the current policyrequirements

mysql 新增数据库用户失败 解决方法: 修改校验密码策略等级 set global validate_password.policyLOW;

【面试】PWM(脉冲宽度调制)相关问题 ——长期更新

1、PWM调节原理 答:通过改变信号的高电平和低电平的持续时间比例来控制输出信号的平均功率或电压。 2、PWM占空比定义 答:在一个脉冲周期内,高电平的时间占整个周期时间的比例。 3、PWM波形的周期和调节精度由谁决定 答:当计数…

全同态加密生态项目盘点:FHE技术的崛起以及应用

撰文:Chris,Techub News 在当今数字化的时代,隐私保护已成为一个全球性的焦点话题,特别是在加密货币和区块链技术快速发展的背景下。虽然当前的隐私技术在保护数据安全方面多有欠缺,引发了广泛的关注和批评&#xff0c…

BUUCTF-WEB3

[极客大挑战 2019]Knife1 1.打开附件链接 一句话木马eval($_POST["Syc"]); 2.中国蚁剑 用中国蚁剑连接 在根目录下找到一个名为flag的文件 3.得到flag [极客大挑战 2019]Upload1 1.打开附件链接 是一个文件上传 2.一句话木马 经过多次尝试都被绕过,更…

JavaScript面试 题

1.延时加载JS有哪些方式 延时加载 :async defer 例如:<script defer type"type/javascript" srcscript.js></ script> defer:等html全部解析完成,才会执行js代码,顺次执行的 async: js和html解析是同步的,不是顺次执行js脚本(谁先加载完先执行谁)2.JS数…

【C++】菱形继承、菱形虚拟继承、继承与组合

目录 01.概念 02.虚拟继承 原理 03.继承和组合 01.概念 单继承&#xff1a; 一个子类只有一个父类时&#xff0c;称这种继承关系为单继承。 多继承&#xff1a; 一个子类同时有两个及以上的父类时&#xff0c;称这种继承关系为多继承。 菱形继承&#xff1a; 菱形继承是…

一文搞懂oracle事务提交以及脏数据落盘的原则

本文基于oracle 19c 做事务提交以及oracle脏数据落盘的相关解读 第一章 相关进程及组件介绍&#xff1a; 1.LGWR&#xff1a; 重做日志条目在系统全局区域 &#xff08;SGA&#xff09; 的重做日志缓冲区中生成。LGWR 按顺序将重做日志条目写入重做日志文件。如果数据库具有…

期望薪资26K,北京疯狂游戏golang一面

北京疯狂游戏一面 1、自我介绍 2、财务业务中&#xff0c;你做了哪些设计来保证金额数据的准确性&#xff1f;&#xff08;例如&#xff0c;业务涉及多步骤&#xff0c;某一步出了问题怎么解决&#xff09; 3、如何解决单个业务直接报错的数据准确性问题 4、分布式场景下&a…

理解Vue 3响应式系统原理

title: 理解Vue 3响应式系统原理 date: 2024/5/28 15:44:47 updated: 2024/5/28 15:44:47 categories: 前端开发 tags: Vue3.xTypeScriptSFC优化Composition-APIRef&Reactive性能提升响应式原理 第一章&#xff1a;Vue 3简介 1.1 Vue 3概述 Vue 3的诞生背景&#xff1…

怎么把电脑上的文件传到手机上?可保存文档的云笔记

在职场中&#xff0c;我们经常需要将电脑上的重要文件、资料传到手机上&#xff0c;以便随时查阅和使用。比如&#xff0c;当你在公司完成了一份关键报告&#xff0c;但即将外出与客户沟通&#xff0c;这时如果能将报告传到手机上&#xff0c;就能在移动中随时准备应对客户的咨…