|
1 |
| -import { Controller, Get, Logger, Redirect, UseGuards } from '@nestjs/common' |
| 1 | +import { Get, Redirect, UseGuards } from '@nestjs/common' |
2 | 2 | import { AuthGuard } from '@nestjs/passport'
|
3 | 3 | import { User } from '@prisma/client'
|
4 | 4 | import { CurrentUser } from 'src/current-user.decorator'
|
| 5 | +import { ApiController } from 'src/utils/apiController.decorator' |
5 | 6 | import { AuthService } from './auth.service'
|
6 |
| -import { JwtAuthGuard } from './jwt-auth.guard' |
| 7 | +import { JwtAuth } from './decorator/jwtAuth.decorator' |
| 8 | +import { JwtUserDto } from './dto/jwtUser.dto' |
7 | 9 |
|
8 |
| -@Controller('auth') |
| 10 | +@ApiController('auth') |
9 | 11 | export class AuthController {
|
10 |
| - private readonly logger = new Logger(AuthController.name) |
11 |
| - |
12 | 12 | constructor(private authService: AuthService) {}
|
13 |
| - |
| 13 | + /** |
| 14 | + * Redirects to the authsch login page |
| 15 | + */ |
14 | 16 | @UseGuards(AuthGuard('authsch'))
|
15 | 17 | @Get('login')
|
16 |
| - async login(@CurrentUser() user: User) { |
17 |
| - return user |
| 18 | + login() { |
| 19 | + // never called |
18 | 20 | }
|
19 |
| - |
| 21 | + /** |
| 22 | + * Endpoint for authsch to call after login |
| 23 | + * |
| 24 | + * Redirects to the frontend with the jwt token |
| 25 | + */ |
20 | 26 | @Get('callback')
|
21 | 27 | @UseGuards(AuthGuard('authsch'))
|
22 | 28 | @Redirect()
|
23 |
| - async oauthRedirect(@CurrentUser() user: User) { |
| 29 | + oauthRedirect(@CurrentUser() user: User) { |
24 | 30 | const { jwt } = this.authService.login(user)
|
25 |
| - return { url: `${process.env.FRONTEND_AUTHORIZED_URL}?jwt=${jwt}` } |
| 31 | + return { |
| 32 | + url: `${process.env.FRONTEND_AUTHORIZED_URL}?jwt=${jwt}`, |
| 33 | + } |
26 | 34 | }
|
27 |
| - |
| 35 | + /** |
| 36 | + * Endpoint for jwt token validation |
| 37 | + */ |
28 | 38 | @Get('me')
|
29 |
| - @UseGuards(JwtAuthGuard) |
30 |
| - me(@CurrentUser() user: User) { |
| 39 | + @JwtAuth() |
| 40 | + me(@CurrentUser() user: JwtUserDto): JwtUserDto { |
31 | 41 | return user
|
32 | 42 | }
|
33 | 43 | }
|
0 commit comments