не работает авторизация через браузер
пытаюсь настроить авторизацию на TS. тестировала в программе Insomnia, через неё всё работает, а вот при попытке авторизоваться через браузер вылезает ошибка
{
"statusCode": 500,
"message": "Internal server error"
}
вот файл auth.controller.ts:
import {
Body,
Controller,
HttpCode,
Post,
UsePipes,
ValidationPipe,
Res,
Req,
UseGuards,
Get,
UnauthorizedException
} from '@nestjs/common';
import { AuthService } from './auth.service';
import { AuthDto } from './dto/auth.dto';
import { Response, response, Request } from 'express';
import { AuthGuard } from '@nestjs/passport';
@Controller('auth')
export class AuthController {
constructor(private readonly authService: AuthService) { }
@UsePipes(new ValidationPipe())
@HttpCode(200)
@Post('login')
async login(
@Body() dto: AuthDto,
@Res({ passthrough: true }) res: Response
) {
const { refreshToken, ...response } = await this.authService.login(dto)
this.authService.addRefreshTokenToResponse(res, refreshToken)
return response
}
@UsePipes(new ValidationPipe())
@HttpCode(200)
@Post('register')
async register(
@Body() dto: AuthDto,
@Res({ passthrough: true }) res: Response
) {
const { refreshToken, ...response } = await this.authService.register(dto)
this.authService.addRefreshTokenToResponse(res, refreshToken)
return response
}
@UsePipes(new ValidationPipe())
@HttpCode(200)
@Post('login/access-token')
async getNewTokens(
@Req() req: Request,
@Res({ passthrough: true }) res: Response
) {
const refreshTokenFromCookies = req.cookies[this.authService.REFRESH_TOKEN_NAME]
if (!refreshTokenFromCookies) {
this.authService.removeRefreshTokenFromResponse(res)
throw new UnauthorizedException('Refresh токен не прошёл')
}
const { refreshToken, ...response } = await this.authService.getNewTokens(refreshTokenFromCookies)
this.authService.addRefreshTokenToResponse(res, refreshToken)
return response
}
@HttpCode(200)
@Post('logout')
async logout(@Res({ passthrough: true }) res: Response) {
this.authService.removeRefreshTokenFromResponse(res)
return true
}
@Get('google')
@UseGuards(AuthGuard('google'))
async googleAuth(@Req() req) { }
@Get('google/callback')
@UseGuards(AuthGuard('google'))
async googleAuthCallback(
@Req() req,
@Res({ passthrough: true }) res: Response
) {
const { refreshToken, ...response } = await this.authService.validateOAuthLogin(req)
this.authService.addRefreshTokenToResponse(res, refreshToken)
return res.redirect(
`${process.env['CLIENT_URL']}/dashboard?accessToken=${response.accessToken}`
)
}
@Get('yandex')
@UseGuards(AuthGuard('yandex'))
async yandexAuth(@Req() req) { }
@Get('yandex/callback')
@UseGuards(AuthGuard('yandex'))
async yandexAuthCallback(
@Req() req,
@Res({ passthrough: true }) res: Response
) {
const { refreshToken, ...response } = await this.authService.validateOAuthLogin(req)
this.authService.addRefreshTokenToResponse(res, refreshToken)
return res.redirect(
`${process.env['CLIENT_URL']}/dashboard?accessToken=${response.accessToken}`
)
}
}
не могу дальше работать из-за этой ошибки :(
как это исправить?