# Building RESTful APIs with Authentication
Learn how to build secure RESTful APIs with JWT authentication in NestJS.
## Setting up JWT
First, install the necessary packages:
```bash
npm install @nestjs/jwt @nestjs/passport passport passport-jwt
npm install -D @types/passport-jwt
```
## Creating Auth Module
Create an authentication module to handle login and token generation:
```typescript
@Module({
imports: [
JwtModule.register({
secret: process.env.JWT_SECRET,
signOptions: { expiresIn: '1h' },
}),
],
})
export class AuthModule {}
```
## Protecting Routes
Use guards to protect your routes:
```typescript
@UseGuards(JwtAuthGuard)
@Get('profile')
getProfile(@Request() req) {
return req.user;
}
```