send the bearer token to the frontend
This commit is contained in:
		| @@ -5,9 +5,11 @@ import { | ||||
|   HttpException, | ||||
|   HttpStatus, | ||||
|   Query, | ||||
|   Redirect, | ||||
| } from '@nestjs/common'; | ||||
| import { ApiQuery } from '@nestjs/swagger'; | ||||
| import { ConfigService } from '@nestjs/config'; | ||||
| import { JwtService } from '@nestjs/jwt'; | ||||
| import { catchError, lastValueFrom, map } from 'rxjs'; | ||||
|  | ||||
| @Controller('auth') | ||||
| @@ -15,6 +17,7 @@ export class AuthController { | ||||
|   constructor( | ||||
|     private config: ConfigService, | ||||
|     private httpService: HttpService, | ||||
|     private jwtService: JwtService, | ||||
|   ) {} | ||||
|  | ||||
|   @Get('/vatsim') | ||||
| @@ -23,7 +26,8 @@ export class AuthController { | ||||
|     description: 'The authorization code', | ||||
|     type: String, | ||||
|   }) | ||||
|   async vatsim(@Query('code') code): Promise<void> { | ||||
|   @Redirect() | ||||
|   async vatsim(@Query('code') code) { | ||||
|     if (!code) { | ||||
|       throw new HttpException( | ||||
|         'Code not found in the query', | ||||
| @@ -53,7 +57,7 @@ export class AuthController { | ||||
|         ), | ||||
|     ); | ||||
|  | ||||
|     const user = await lastValueFrom( | ||||
|     const userdata = await lastValueFrom( | ||||
|       this.httpService | ||||
|         .get( | ||||
|           `${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