Implémente une authentification robuste avec validation, feedback utilisateur et gestion du token JWT.
Dans ce module, nous allons mettre en place une authentification robuste pour votre application de chat temps réel construite avec Remix et NestJS. Vous découvrirez comment gérer l’inscription, la connexion, la validation des formulaires, la remontée de feedback utilisateur et la sécurisation de vos API grâce aux JSON Web Tokens (JWT).
AlertFeedback
).Une authentification bien conçue est la base de toute application web.
Validation côté client
1import { z } from 'zod'23export const registerSchema = z.object({4email: z.string().email({ message: 'Adresse email invalide.' }),5password: z.string().min(6, {6message: 'Le mot de passe doit contenir ≥ 6 caractères.',7}),8firstName: z.string().min(2, {9message: 'Le prénom doit contenir ≥ 2 caractères.',10}),11})
Création des routes Remix
Mise en place de l’API NestJS
1@Controller('auth')2export class AuthController {3@Post('register')4register(@Body() dto: CreateUserDto) {5return this.authService.register({ registerBody: dto })6}7@Post('login')8login(@Body() dto: LogUserDto) {9return this.authService.login({ authBody: dto })10}11}
Gestion du JWT
AuthService
.@UseGuards(JwtAuthGuard)
et la stratégie JwtStrategy
.Authorization
.Avant de démarrer, assurez-vous d’avoir configuré vos variables d’environnement
pour BACKEND_URL
et la JWT_SECRET
.
1npm install zod @radix-ui/react-label
Dans la suite de ce module, nous détaillerons chaque étape, du schéma de validation aux gardes JWT, pour vous permettre de sécuriser votre application de chat.