一、react auth kit 是簡化身份驗證和授權在 React 應用程式中的整合過程。它提供了一種靈活的方式來管理使用者身份驗證狀態、處理登入和註銷,以及控制使用者對特定功能和資源的存取權限。
特徵
身份驗證狀態管理
身份驗證元件
存取控制
路由保護
它提供了一套強大而靈活的工具,讓你能夠輕鬆地構建安全可靠的使用者身份驗證系統。
二· 使用方式 1-1 新增login 設定 1 2 3 4 5 6 7 const privateElement = (element : JSX.Element ) => { return ( <RequireAuth loginPath ={ "/login "}> {element} </RequireAuth > ); }
1-2 區分Layout 用法 1-2-1 需登入頁面設定 1 2 3 4 {} <Route path="/Login" element={<LoginLayout /> }> <Route path ="/Login" element ={ <Login /> } /> </Route >
1-2-2 登入後頁面 使用不同的Layout這邊可以使用下方作法
LoginLayout : 新增一個 LoginLayout.ts 製作 登入的模板
/Login : 底下為允許使用 LoginLayout 套版的也面。
1 2 3 4 5 6 {} <Route path="/" element={<MainLayout /> }> <Route path ="/" element ={privateElement( <Home /> )} /> <Route path ="/Profile" element ={privateElement( <ProfileHome /> )} /> <Route path ="/about" element ={privateElement( <About /> )} /> </Route >
1-3 登入頁面處理 1-3-1 判斷有登入過 1 2 3 4 5 6 7 8 9 10 11 import { useIsAuthenticated, useSignIn } from "react-auth-kit" ;const isAuthenticated = useIsAuthenticated ();useEffect (() => { if (!isAuthenticated ()) { navigate ("/login" , { replace : true }); } else { navigate ("/" ); } }, []);
1-3-2 登入做法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 const signIn = useSignIn ();const token = await services?.auth .login (useremail, password); if (!token) { toast.error ('帳號或密碼輸入錯誤,請重新輸入' ); return false ; } signIn ({ token : token, tokenType : "Bearer" , authState : { name : "React User" , uid : 123456 }, expiresIn : 120 })