添加管理员登陆,添加nginx反向代理配置,
This commit is contained in:
+11
-21
@@ -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, saveUserInfo } from "~/api/login/auth.server";
|
||||
import { createUserSession, saveUserInfo } from "~/api/login/auth.server";
|
||||
import { JWTUtils, type UserInfoForJWT } from "~/utils/jwt";
|
||||
import { toastService } from "~/components/ui";
|
||||
|
||||
@@ -50,24 +50,12 @@ export async function loader({ request }: LoaderFunctionArgs) {
|
||||
return redirect("/login?error=userinfo_error");
|
||||
}
|
||||
|
||||
// 创建会话
|
||||
const session = await sessionStorage.getSession();
|
||||
session.set("isAuthenticated", true);
|
||||
session.set("accessToken", tokenResponse.access_token);
|
||||
session.set("refreshToken", tokenResponse.refresh_token);
|
||||
session.set("tokenIssuedAt", Date.now());
|
||||
session.set("tokenExpiresIn", tokenResponse.expires_in);
|
||||
session.set("userInfo", userInfo.data);
|
||||
|
||||
// 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);
|
||||
@@ -97,9 +85,6 @@ export async function loader({ request }: LoaderFunctionArgs) {
|
||||
const frontendJWT = JWTUtils.generateJWT(jwtUserInfo, tokenResponse.expires_in);
|
||||
console.log("前端JWT已生成");
|
||||
|
||||
// 将JWT存储在session中
|
||||
session.set("frontendJWT", frontendJWT);
|
||||
|
||||
// 更新userInfo以包含数据库ID和JWT信息
|
||||
const enhancedUserInfo = {
|
||||
...userInfo.data,
|
||||
@@ -107,12 +92,17 @@ export async function loader({ request }: LoaderFunctionArgs) {
|
||||
user_role: userRole,
|
||||
frontend_jwt: frontendJWT
|
||||
};
|
||||
session.set("userInfo", enhancedUserInfo);
|
||||
|
||||
return redirect(redirectTo, {
|
||||
headers: {
|
||||
"Set-Cookie": cookie
|
||||
}
|
||||
// 使用统一的session创建函数
|
||||
return createUserSession({
|
||||
isAuthenticated: true,
|
||||
userRole: userRole as 'common' | 'developer',
|
||||
redirectTo,
|
||||
accessToken: tokenResponse.access_token,
|
||||
refreshToken: tokenResponse.refresh_token,
|
||||
tokenExpiresIn: tokenResponse.expires_in,
|
||||
userInfo: enhancedUserInfo,
|
||||
frontendJWT
|
||||
});
|
||||
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user