This project serves as a template for managing user login and registration at the frontend level. It is built using Next.js 14 and utilizes Axios for HTTP requests. The web application is structured as follows:
- Home Page: Handles user registration or login.
- Public Page (/public): Accessible to anyone.
- Private Page (/private): Accessible only to a successfully logged-in user.
User state management after successful login is handled using the useContext
hook.
For navigation security, both middleware and redirects are employed in the private page.
-
pages
- page.tsx: Main home page for user registration or login.
- public.tsx: Public page accessible to anyone.
- private.tsx: Private page accessible only to logged-in users.
-
/components
- register.tsx: Component for user registration.
- login.tsx: Component for user login.
-
/hooks
- useAuth.ts: Hook for synchronizing user data with the Context API.
- useRefreshToken.ts: Hook for updating the accessToken when necessary.
- useAxiosPrivate.ts: Hook used as an interceptor for HTTP calls, adding the required accessToken.
- Install dependencies:
npm install
- Run the development server:
npm run dev
- Visit the main home page (
/
). - Register or log in.
- Access the public page (
/public
) available to anyone. - Access the private page (
/private
) only after successfully logging in.
-
useAuth
- Description: Synchronizes user data with the Context API.
- Location:
/hooks/useAuth.ts
-
useRefreshToken
- Description: Updates the accessToken when necessary.
- Location:
/hooks/useRefreshToken.ts
-
useAxiosPrivate
- Description: Hook used as an interceptor for HTTP calls, adding the required accessToken.
- Location:
/hooks/useAxiosPrivate.ts
- Middleware: Employed for enhancing security during navigation.
- Redirects: Utilized in the private page to control access.
- Next.js 14: A React framework for building server-rendered applications.
- Axios: A promise-based HTTP client for the browser and Node.js.
Feel free to contribute to this project by submitting issues or pull requests.
This project is licensed under the MIT License.
Questo progetto funge da template per gestire la registrazione e il login degli utenti a livello di frontend. È realizzato utilizzando Next.js 14 e sfrutta Axios per le richieste HTTP. L'applicazione web è strutturata nel seguente modo:
- Pagina Principale: Gestisce la registrazione o il login dell'utente.
- Pagina Pubblica (/public): Accessibile a chiunque.
- Pagina Privata (/private): Accessibile solo a un utente che ha effettuato l'accesso con successo.
La gestione dello stato dell'utente dopo un accesso riuscito è gestita utilizzando il hook useContext
.
Per la sicurezza nella navigazione, sono utilizzati sia middleware che reindirizzamenti nella pagina privata.
-
/pages
- index.tsx: Pagina principale per la registrazione o il login dell'utente.
- public.tsx: Pagina pubblica accessibile a chiunque.
- private.tsx: Pagina privata accessibile solo agli utenti autenticati.
-
/components
- register.tsx: Componente per la registrazione dell'utente.
- login.tsx: Componente per il login dell'utente.
-
/hooks
- useAuth.ts: Hook per sincronizzare i dati dell'utente con il Context API.
- useRefreshToken.ts: Hook per aggiornare l'accessToken quando necessario.
- useAxiosPrivate.ts: Hook utilizzato come interceptor per le chiamate HTTP, aggiungendo l'accessToken necessario.
- Clonare il repository:
git clone https://github.com/your/repository.git
- Installare le dipendenze:
npm install
- Eseguire il server di sviluppo:
npm run dev
- Visitare la pagina principale (
/
). - Registrarsi o effettuare il login.
- Accedere alla pagina pubblica (
/public
) disponibile per chiunque. - Accedere alla pagina privata (
/private
) solo dopo aver effettuato l'accesso con successo.
-
useAuth
- Descrizione: Sincronizza i dati dell'utente con il Context API.
- Posizione:
/hooks/useAuth.ts
-
useRefreshToken
- Descrizione: Aggiorna l'accessToken quando necessario.
- Posizione:
/hooks/useRefreshToken.ts
-
useAxiosPrivate
- Descrizione: Hook utilizzato come interceptor per le chiamate HTTP, aggiungendo l'accessToken necessario.
- Posizione:
/hooks/useAxiosPrivate.ts
- Middleware: Utilizzato per migliorare la sicurezza durante la navigazione.
- Reindirizzamenti: Utilizzati nella pagina privata per controllare l'accesso.
- Next.js 14: Un framework React per la costruzione di applicazioni server-rendered.
- Axios: Un client HTTP basato su promesse per il browser e Node.js.
Sentiti libero di contribuire a questo progetto inviando problemi o richieste di pull.
Questo progetto è concesso in licenza con la Licenza MIT.