给所有请求都加上jwt,隐藏生成jwt的secret(放到.env中),隐藏app-secret(放在pm2运行配置文件中,后续直接读取环境配置即可)

This commit is contained in:
2025-10-17 15:28:22 +08:00
parent 9ec6d30573
commit 59706b70d0
70 changed files with 2279 additions and 688 deletions
+11 -7
View File
@@ -21,13 +21,17 @@ export const meta: MetaFunction = () => {
];
};
export async function loader() {
export async function loader({ request }: { request: Request }) {
try {
const response = await getRuleGroups();
// 获取用户会话信息
const { getUserSession } = await import("~/api/login/auth.server");
const { frontendJWT } = await getUserSession(request);
const response = await getRuleGroups(frontendJWT);
if (response.error) {
throw new Error(response.error);
}
return Response.json({ groups: response.data });
return Response.json({ groups: response.data, frontendJWT });
} catch (error) {
console.error('加载评查点分组失败:', error);
return Response.json({ groups: [] });
@@ -35,7 +39,7 @@ export async function loader() {
}
export default function RuleGroupsIndex() {
const { groups: initialGroups } = useLoaderData<typeof loader>();
const { groups: initialGroups, frontendJWT } = useLoaderData<typeof loader>();
const rootData = useRouteLoaderData("root") as { userRole: string };
const navigate = useNavigate();
const [searchParams, setSearchParams] = useSearchParams();
@@ -65,7 +69,7 @@ export default function RuleGroupsIndex() {
// 并行加载所有父分组的子分组
const promises = initialGroups.map(async (group: RuleGroup) => {
try {
const response = await getChildGroups(group.id);
const response = await getChildGroups(group.id, frontendJWT);
if (response.error) {
console.error(`加载分组 ${group.id} 的子分组失败:`, response.error);
return { parentId: group.id, children: [] };
@@ -139,7 +143,7 @@ export default function RuleGroupsIndex() {
}
// 否则加载子分组
const response = await getChildGroups(groupId);
const response = await getChildGroups(groupId, frontendJWT);
if (response.error) {
throw new Error(response.error);
}
@@ -187,7 +191,7 @@ export default function RuleGroupsIndex() {
const handleDeleteGroup = async (groupId: string) => {
if (confirm("确定要删除该分组吗?此操作将同时删除该分组下的所有评查点,且不可恢复。")) {
try {
const result = await deleteRuleGroup(groupId);
const result = await deleteRuleGroup(groupId, frontendJWT);
if (result.success) {
// 从本地状态中移除被删除的分组
setGroups(prev => {