欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 【FastGPT】如何新增用户修改密码

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

2025/4/22 8:20:42 来源:https://blog.csdn.net/friendlytkyj/article/details/146015964  浏览:    关键词:【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, // 新创建用户的ObjectIdavatar: "/icon/logo.svg",createTime: new ISODate(),
});

在这里插入图片描述

查询团队成员集合数据

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

在这里插入图片描述

把用户加入团队

db.team_members.insert({teamId: db.teams.findOne({name:"运维团队"}, {_id:1})._id, // 团队的ObjectIduserId: db.users.findOne({username:"demo"}, {_id:1})._id, // 用户的ObjectIdname: "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!@登录了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词