文档列表documents添加用户id的限制,添加通过统一认证之后数据库中用户数据的添加和角色的添加,添加Sidebar菜单通过数据库请求获取

This commit is contained in:
2025-07-20 21:49:40 +08:00
parent e4ce41cebe
commit d8f3d98c70
17 changed files with 1630 additions and 199 deletions
+13 -3
View File
@@ -1,7 +1,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 } from "~/api/login/auth.server";
import { sessionStorage, saveUserInfo } from "~/api/login/auth.server";
import { toastService } from "~/components/ui";
export async function loader({ request }: LoaderFunctionArgs) {
@@ -58,14 +58,24 @@ export async function loader({ request }: LoaderFunctionArgs) {
session.set("tokenExpiresIn", tokenResponse.expires_in);
session.set("userInfo", userInfo.data);
// 根据用户信息判断用户角色,这里可以根据实际业务逻辑调整
const userRole = userInfo.data.username === "admin" ? "developer" : "common";
// TODO 根据用户信息判断用户角色,这里可以根据实际业务逻辑调整 暂定都是common
// const userRole = userInfo.data.username === "admin" ? "developer" : "common";
const userRole = "common";
session.set("userRole", userRole);
// 获取重定向URL
const redirectTo = url.searchParams.get("redirect") || "/";
const cookie = await sessionStorage.commitSession(session);
// 成功获取用户信息之后通过auth.server.ts中的saveUserInfo方法去写入自己的数据库中,通过sub作为唯一值去添加数据
const saveResult = await saveUserInfo(userInfo.data);
if (!saveResult.success) {
console.error("保存用户信息到数据库失败:", saveResult.error);
// 注意:即使保存到数据库失败,我们仍然继续登录流程,因为用户已经通过了身份验证
} else {
console.log("用户信息已成功保存到数据库");
}
return redirect(redirectTo, {
headers: {