添加jwt验证,添加交叉评查首页加载对接接口,评查任务文档列表对接接口,意见列表对接接口

This commit is contained in:
2025-07-22 14:37:37 +08:00
parent de953283e3
commit 47664fc0e8
19 changed files with 1988 additions and 557 deletions
+34 -2
View File
@@ -2,6 +2,7 @@ import { type LoaderFunctionArgs, redirect } from "@remix-run/node";
import { OAuthClient } from "~/api/login/oauth-client";
import { OAUTH_CONFIG } from "~/config/api-config";
import { sessionStorage, saveUserInfo } from "~/api/login/auth.server";
import { JWTUtils, type UserInfoForJWT } from "~/utils/jwt";
import { toastService } from "~/components/ui";
export async function loader({ request }: LoaderFunctionArgs) {
@@ -73,9 +74,40 @@ export async function loader({ request }: LoaderFunctionArgs) {
if (!saveResult.success) {
console.error("保存用户信息到数据库失败:", saveResult.error);
// 注意:即使保存到数据库失败,我们仍然继续登录流程,因为用户已经通过了身份验证
} else {
console.log("用户信息已成功保存到数据库");
return redirect("/login?error=save_user_error");
}
console.log("用户信息已成功保存到数据库");
const savedUserData = saveResult.data!;
// 生成前端专用JWT
const jwtUserInfo: UserInfoForJWT = {
sub: userInfo.data.sub,
user_id: savedUserData.id!,
username: savedUserData.username,
nick_name: savedUserData.nick_name,
email: savedUserData.email,
phone_number: savedUserData.phone_number,
ou_id: savedUserData.ou_id,
ou_name: savedUserData.ou_name,
is_leader: savedUserData.is_leader,
user_role: userRole
};
const frontendJWT = JWTUtils.generateJWT(jwtUserInfo, tokenResponse.expires_in);
console.log("前端JWT已生成");
// 将JWT存储在session中
session.set("frontendJWT", frontendJWT);
// 更新userInfo以包含数据库ID和JWT信息
const enhancedUserInfo = {
...userInfo.data,
user_id: savedUserData.id,
user_role: userRole,
frontend_jwt: frontendJWT
};
session.set("userInfo", enhancedUserInfo);
return redirect(redirectTo, {
headers: {