【FastGPT】如何新增用户修改密码

【FastGPT】如何新增用户&修改密码

  • 摘要
  • 查看运行中的容器
  • 进入mongo容器
  • 登录mongo数据库
  • 切换数据库
  • 查询用户集合数据
  • 新增用户
  • 查询团队表数据
  • 创建团队
  • 查询团队成员集合数据
  • 把用户加入团队
  • FastGPT用户密码的加密规则介绍
  • 加密算法Java版参考代码&单元测试代码
  • 修改密码

摘要

关于FastGPT的部署,官方提供了docker-compose方式的部署文档,如果使用的是podmanpodman-compose的同学,可以参考这篇文章【FastGPT】Linux系统使用podman-compose方式部署指南

部署好之后,发现FastGPT的用户管理功能比较简单,没有新增用户,也没有修改密码的功能。只有一个默认用户root,默认密码1234,因此,本文一步一步教你如何新增用户,以及如何修改密码。

查看运行中的容器

sudo podman ps

在这里插入图片描述

进入mongo容器

sudo podman exec -it mongo bash

成功进入容器后,命令行终端显示的信息会变化,如下图所示
在这里插入图片描述

登录mongo数据库

mongo --username fastgpt --password fastgpt --authenticationDatabase admin

有些审计要求的终端不允许直接输入密码,那就分两步输入命令

mongo --username fastgpt

然后命令行会再提示输入密码,成功进入数据库后会显示如下信息
在这里插入图片描述

切换数据库

use fastgpt

在这里插入图片描述

查询用户集合数据

db.users.find().pretty();

我们可以看到系统默认的root用户和密码
在这里插入图片描述

新增用户

新增一个demo用户,密码是密文,先复制root的密码,后面再讲密码的加密规则

db.users.insert({
    username: "demo",
    password: "756bc47cb5215dc3329ca7e1f7be33a2dad68990bb94b76d90aa07f4e44a233a",
    status: "active",
    avatar: "/icon/human.svg",
    balance: NumberInt("100000"),
    promotionRate: NumberInt("10"),
    timezone: "Asia/Shanghai",
    createTime: new ISODate()
});

在这里插入图片描述

这个时候还无法登录,因为demo用户没有加入任何团队,因此,需要先创建团队,再把用户加入团队。

查询团队表数据

db.teams.find().pretty();

可以看到,系统默认只有一个My Team团队
在这里插入图片描述

创建团队

db.teams.insert({
    name: "运维团队",
    ownerId: db.users.findOne({username:"demo"}, {_id:1})._id, // 新创建用户的ObjectId
    avatar: "/icon/logo.svg",
    createTime: new ISODate(),
});

在这里插入图片描述

查询团队成员集合数据

db.team_members.find().pretty();

在这里插入图片描述

把用户加入团队

db.team_members.insert({
    teamId: db.teams.findOne({name:"运维团队"}, {_id:1})._id, // 团队的ObjectId
    userId: db.users.findOne({username:"demo"}, {_id:1})._id, // 用户的ObjectId
    name: "Owner",
    role: "owner",
    status: "active",
    createTime: new ISODate(),
    defaultTeam: true
});

在这里插入图片描述
完成这一步,就可以使用demo用户登录了
在这里插入图片描述

FastGPT用户密码的加密规则介绍

  • 使用SHA-256算法对1234进行hash
  • hash值转成十六进制字符串
  • 把得到的字符串,再重复一次以上两个步骤
  • 加密算法在源码中的位置: https://github.com/labring/FastGPT/tree/main/packages/global/common/string/tools.ts,第12行

加密算法Java版参考代码&单元测试代码

@SneakyThrows
@Test
void testFastGPTPassword() {
    String text = "1234";
    String testResult = cryptPassword(cryptPassword(text));
    assertEquals("756bc47cb5215dc3329ca7e1f7be33a2dad68990bb94b76d90aa07f4e44a233a", testResult);

    text = "#demo01!@";
    String newPassword = cryptPassword(cryptPassword(text));
    log.info("newPassword: {}", newPassword);
}

// FastGPT 密码加密算法
@SneakyThrows
private static String cryptPassword(String text) {
    // 创建 MessageDigest 实例,指定使用 SHA-256 算法
    MessageDigest md = MessageDigest.getInstance("SHA-256");
    // 更新 MessageDigest 实例,传入要哈希的字符串的字节
    md.update(text.getBytes());
    // 完成哈希计算,返回结果是一个字节数组
    byte[] digest = md.digest();
    // 将字节数组转换为十六进制字符串
    return HexUtil.encodeHexStr(digest);
}

输出新密码

newPassword: 73b30f4023367b065ad0e01d958fb0d25f43e179dc6eb63b45fb4d068bf98fb0

修改密码

使用上面的新密码进行更新

db.users.updateOne({username: "demo"}, {
  $set: {password: "73b30f4023367b065ad0e01d958fb0d25f43e179dc6eb63b45fb4d068bf98fb0"}
});

在这里插入图片描述
然后就可以使用新密码#demo01!@登录了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

复试准备日常

实验室目前投了 aiot 这周四 感知计算面试3.5号下午2点开始(面完了他问我有没有项目) 532图像处理实验室(我的项目大多也是图像处理的)(预计下周末)提前到3.4号下午6点 我不在第一批里面 软专不知道要几个 …

HiRT:利用分层机器人Transformer 增强机器人控制

25年2月来自清华、伯克利分校和上海姚期智研究院的论文“HiRT: Enhancing Robotic Control with Hierarchical Robot Transformers”。 大型视觉-语言-动作 (VLA) 模型利用强大的预训练视觉-语言模型 (VLM) 后端,由于其深刻的泛化能力而在机器人控制方面显示出良好…

Netty笔记3:NIO编程

Netty笔记1:线程模型 Netty笔记2:零拷贝 Netty笔记3:NIO编程 Netty笔记4:Epoll Netty笔记5:Netty开发实例 Netty笔记6:Netty组件 Netty笔记7:ChannelPromise通知处理 Netty笔记8&#xf…

MySQL-高级查询

查询处理 排序(默认不是按主键排序的) order by 字段1[,字段2] [asc|desc] 默认是升序排序也可以指定 select 列表中列的序号进行排序如果是多个字段,那么在上一个字段排序完的基础上排序下一个 限制数量 limit 行数&#xff0…

解决各大浏览器中http地址无权限调用麦克风摄像头问题(包括谷歌,Edge,360,火狐)后续会陆续补充

项目场景: 在各大浏览器中http地址调用电脑麦克风摄像头会没有权限,http协议无法使用多媒体设备 原因分析: 为了用户的隐私安全,http协议无法使用多媒体设备。因为像摄像头和麦克风属于可能涉及重大隐私问题的API,ge…

权限系统设计方案实践(Spring Security + RBAC 模型)

前言 权限系统设计基本上是所有项目中都会涉及的一个重要部分。通过权限系统,我们将对用户角色、功能模块访问进行限制,从而保证系统安全性。本文将介绍中大型项目中常用的一套权限系统设计方案,通过 SpringSecurity 安全管理框架&#xff0c…

数学软件Matlab下载|支持Win+Mac网盘资源分享

如大家所了解的,Matlab与Maple、Mathematica并称为三大数学软件。Matlab应用广泛,常被用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。 Matlab将数值分析、矩阵计算、科学…

植物大战僵尸杂交版v3.3最新版本(附下载链接)

B站游戏作者潜艇伟伟迷于12月21日更新了植物大战僵尸杂交版3.3版本!!!,有b站账户的记得要给作者三连关注一下呀! 不多废话下载链接放上: 夸克网盘链接::https://pan.quark.cn/s/6f2a…

GPU、NPU与LPU:大语言模型(LLM)硬件加速器全面对比分析

引言:大语言模型计算基础设施的演进 随着大语言模型(LLM)的快速发展与广泛应用,高性能计算硬件已成为支撑LLM训练与推理的关键基础设施。目前市场上主要有三类处理器用于加速LLM相关任务:GPU(图形处理单元…

计算机网络数据传输探秘:包裹如何在数字世界旅行?

计算机网络数据传输探秘:包裹如何在数字世界旅行? 一、从快递网络看数据传输本质 想象你网购了一件商品: 打包:商家用纸箱包装,贴上地址标签(数据封装)运输:包裹经过网点→分拣中心→运输车(网络节点与链路)签收:快递员核对信息后交付(数据校验与接收)数据的网络…

VirtualBox虚拟机MacOS从Big Sur升级到Sequoia(失败)

VirtualBox虚拟机里安装好Big Sur版本,尝试升级到Sequoia,但是最终失败了。 软件升级 直接在系统偏好-软件更新里可以看到提示,提示可以升级到15版本Sequoia 点击同意,看能不能升级到Sequoia吧。升级前先用时光做了备份。 升级…

从数据到决策,永洪科技助力良信电器“智”领未来

在数字经济浪潮汹涌的时代,数字化转型已成为企业增强竞争力、实现可持续发展的必由之路。良信电器,作为国内知名的电气设备制造企业,积极响应时代号召,携手永洪科技,共同开启了数字化转型的新篇章。 上海良信电器股份有…

dify接入语音转文本模型后报错: microphone not authorized

遇到microphone not authorized莫慌,这是因为没有获取到设备的麦克风权限导致的 解决方法:(三种选其一,我实际使用的是第三种) 1.将http路径转换成https 2.接入的前端增加获取麦克风权限的功能 3.打开设备麦克风权限:(能快速验证…

华为hcia——Datacom实验指南——配置手工模式以太网链路聚合

什么是以太网链路聚合(Eth-trunk) 是一种将多个物理链路捆绑在一起,让设备以为是一条大链路,能够增加带宽,增加冗余度,提升可靠性,实现负载平衡。 传输方式有两种 基于数据流传输和基于数据包…

【随手笔记】利尔达NB模组

1.名称 移芯EC6263GPP 参数 指令备注 利尔达上电输出 [2025-03-04 10:24:21.379] I_AT_WAIT:i_len2 [2025-03-04 10:24:21.724] LI_AT_WAIT:i_len16 [2025-03-04 10:24:21.724] [2025-03-04 10:24:21.733] Lierda [2025-03-04 10:24:21.733] [2025-03-04 10:24:21.745] OK移…

RNN实现精神分裂症患者诊断(pytorch)

RNN理论知识 RNN(Recurrent Neural Network,循环神经网络) 是一种 专门用于处理序列数据(如时间序列、文本、语音、视频等)的神经网络。与普通的前馈神经网络(如 MLP、CNN)不同,RNN…

阿里万相,正式开源

大家好,我是小悟。 阿里万相正式开源啦。这就像是AI界突然开启了一扇通往宝藏的大门,而且还是免费向所有人敞开的那种。 你想想看,在这个科技飞速发展的时代,AI就像是拥有神奇魔法的魔法师,不断地给我们带来各种意想…

json介绍、python数据和json数据的相互转换

目录 一 json介绍 json是什么? 用处 Json 和 XML 对比 各语言对Json的支持情况 Json规范详解 二 python数据和json数据的相互转换 dumps() : 转换成json loads(): 转换成python数据 总结 一 json介绍 json是什么? 实质上是一条字符串 是一种…

250301-OpenWebUI配置DeepSeek-火山方舟+硅基流动+联网搜索+推理显示

A. 最终效果 B. 火山方舟配置(一定要点击添加) C. 硅基流动配置(最好要点击添加,否则会自动弹出所有模型) D. 联网搜索配置 E. 推理过程显示 默认是没有下面的推理过程的显示的 F. SearXNG配置 注意:此…

Linux中死锁问题的探讨

在 Linux 中,死锁(Deadlock) 是指多个进程或线程因为竞争资源而相互等待,导致所有相关进程或线程都无法继续执行的状态。死锁是一种严重的系统问题,会导致系统资源浪费,甚至系统崩溃。 死锁的定义 死锁是指…