send the bearer token to the frontend
This commit is contained in:
		| @@ -5,9 +5,11 @@ import { | |||||||
|   HttpException, |   HttpException, | ||||||
|   HttpStatus, |   HttpStatus, | ||||||
|   Query, |   Query, | ||||||
|  |   Redirect, | ||||||
| } from '@nestjs/common'; | } from '@nestjs/common'; | ||||||
| import { ApiQuery } from '@nestjs/swagger'; | import { ApiQuery } from '@nestjs/swagger'; | ||||||
| import { ConfigService } from '@nestjs/config'; | import { ConfigService } from '@nestjs/config'; | ||||||
|  | import { JwtService } from '@nestjs/jwt'; | ||||||
| import { catchError, lastValueFrom, map } from 'rxjs'; | import { catchError, lastValueFrom, map } from 'rxjs'; | ||||||
|  |  | ||||||
| @Controller('auth') | @Controller('auth') | ||||||
| @@ -15,6 +17,7 @@ export class AuthController { | |||||||
|   constructor( |   constructor( | ||||||
|     private config: ConfigService, |     private config: ConfigService, | ||||||
|     private httpService: HttpService, |     private httpService: HttpService, | ||||||
|  |     private jwtService: JwtService, | ||||||
|   ) {} |   ) {} | ||||||
|  |  | ||||||
|   @Get('/vatsim') |   @Get('/vatsim') | ||||||
| @@ -23,7 +26,8 @@ export class AuthController { | |||||||
|     description: 'The authorization code', |     description: 'The authorization code', | ||||||
|     type: String, |     type: String, | ||||||
|   }) |   }) | ||||||
|   async vatsim(@Query('code') code): Promise<void> { |   @Redirect() | ||||||
|  |   async vatsim(@Query('code') code) { | ||||||
|     if (!code) { |     if (!code) { | ||||||
|       throw new HttpException( |       throw new HttpException( | ||||||
|         'Code not found in the query', |         'Code not found in the query', | ||||||
| @@ -53,7 +57,7 @@ export class AuthController { | |||||||
|         ), |         ), | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|     const user = await lastValueFrom( |     const userdata = await lastValueFrom( | ||||||
|       this.httpService |       this.httpService | ||||||
|         .get( |         .get( | ||||||
|           `${this.config.get<string>( |           `${this.config.get<string>( | ||||||
| @@ -73,6 +77,23 @@ export class AuthController { | |||||||
|           }), |           }), | ||||||
|         ), |         ), | ||||||
|     ); |     ); | ||||||
|     console.log(user); |  | ||||||
|  |     if (userdata.oauth.token_valid) { | ||||||
|  |       const payload = { username: userdata.cid, sub: token }; | ||||||
|  |       const accessToken = this.jwtService.sign(payload); | ||||||
|  |       return { | ||||||
|  |         url: `${this.config.get<string>( | ||||||
|  |           'frontend.base-url', | ||||||
|  |         )}/${this.config.get<string>( | ||||||
|  |           'frontend.login-endpoint', | ||||||
|  |         )}?token=${accessToken}`, | ||||||
|  |       }; | ||||||
|  |     } else { | ||||||
|  |       return { | ||||||
|  |         url: `${this.config.get<string>( | ||||||
|  |           'frontend.base-url', | ||||||
|  |         )}/${this.config.get<string>('frontend.login-endpoint')}`, | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user