给所有请求都加上jwt,隐藏生成jwt的secret(放到.env中),隐藏app-secret(放在pm2运行配置文件中,后续直接读取环境配置即可)
This commit is contained in:
@@ -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 => {
|
||||
|
||||
Reference in New Issue
Block a user