Преглед изворни кода

Refactor AuthContext to use constants for localStorage keys

- Replaced hardcoded localStorage keys for token and user with constants TOKEN_KEY and USER_KEY for improved maintainability and clarity.
- Updated related functions to ensure consistent usage of the new constants throughout the AuthContext component.
0es пре 4 месеци
родитељ
комит
ed0198f821
2 измењених фајлова са 11 додато и 8 уклоњено
  1. 2 0
      src/constants.ts
  2. 9 8
      src/contexts/AuthContext.tsx

+ 2 - 0
src/constants.ts

@@ -0,0 +1,2 @@
+export const TOKEN_KEY = "GAMI-op_auth_token";
+export const USER_KEY = "GAMI-op_user";

+ 9 - 8
src/contexts/AuthContext.tsx

@@ -5,6 +5,7 @@ import { sha256 } from "js-sha256";
 import { useRouter } from "next/navigation";
 import type React from "react";
 import { createContext, useContext, useEffect, useState } from "react";
+import { TOKEN_KEY, USER_KEY } from "@/constants";
 import {
   getUserInfo,
   login as loginApi,
@@ -44,9 +45,9 @@ export function setToken(token: string | null): void {
   tokenCache = token;
   if (typeof window !== "undefined") {
     if (token) {
-      localStorage.setItem("token", token);
+      localStorage.setItem(TOKEN_KEY, token);
     } else {
-      localStorage.removeItem("token");
+      localStorage.removeItem(TOKEN_KEY);
     }
   }
 }
@@ -57,7 +58,7 @@ export function setToken(token: string | null): void {
 export function clearToken(): void {
   tokenCache = null;
   if (typeof window !== "undefined") {
-    localStorage.removeItem("token");
+    localStorage.removeItem(TOKEN_KEY);
   }
 }
 
@@ -70,8 +71,8 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({
 
   // Check if user is logged in on mount
   useEffect(() => {
-    const storedUser = localStorage.getItem("user");
-    const storedToken = localStorage.getItem("token");
+    const storedUser = localStorage.getItem(USER_KEY);
+    const storedToken = localStorage.getItem(TOKEN_KEY);
 
     if (storedUser && storedToken) {
       try {
@@ -80,7 +81,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({
         setToken(storedToken);
       } catch (error) {
         console.error("Failed to parse user data:", error);
-        localStorage.removeItem("user");
+        localStorage.removeItem(USER_KEY);
         clearToken();
       }
     }
@@ -133,7 +134,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({
 
       // Store user info
       setUser(userData);
-      localStorage.setItem("user", JSON.stringify(userData));
+      localStorage.setItem(USER_KEY, JSON.stringify(userData));
 
       message.open({
         content: "登录成功!",
@@ -157,7 +158,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({
     } finally {
       // Clear local state
       setUser(null);
-      localStorage.removeItem("user");
+      localStorage.removeItem(USER_KEY);
       clearToken();
       message.open({
         content: "已退出登录",