Я только начал использовать гнездо js для проекта. Я успешно вошел в систему пользователей и вернул токен. Теперь проблема заключается в использовании токена для авторизации пользователей. Пытаясь получить всех пользователей возвращает «несанкционированный доступ»
Я также думаю, что неправильно поставил токен или около того. В пользовательском интерфейсе авторизации swagger я ввел Bearer someTokenGoesHere
в поле ввода
Изображение ниже
Это мой код main.ts Конфигурация Swagger в main. ts
const options = new DocumentBuilder().addBearerAuth()
.setTitle('My app')
.setDescription('My app API description')
.setVersion('1.0')
.addTag('Tags')
.build();
const document = SwaggerModule.createDocument(app, options);
SwaggerModule.setup('', app, document);
Пользовательский контроллер
import { Controller, Post, Body, Get, Param, UseGuards } from '@nestjs/common';
import { UserService } from './user.service';
import { CreateUserDto } from './create-user.dto';
import { LoginUserDto } from './login-user.dto';
import { AuthService } from 'src/auth/auth.service';
import { AuthGuard } from '@nestjs/passport';
import { AdminGuard } from 'src/guards/admin.guard';
import { ApiBearerAuth, ApiBasicAuth } from '@nestjs/swagger';
@Controller('user')
export class UserController {
constructor(private userService: UserService,
private authService: AuthService) { }
@Post('login')
async login(@Body() loginDTO: LoginUserDto) {
const user = await this.userService.login(loginDTO);
const newob = {
id: user._id
}
const payload = {
userId: user._id,
email: user.Email,
}
const token = await this.authService.signPayLoad(payload);
return { newob, token };
}
@Post('register')
async register(@Body() createDTO: CreateUserDto) {
const user = await this.userService.register(createDTO);
const newob = {
id: user._id
}
const payload = {
firstname: user.FirstName,
lastname: user.LastName
};
const token = await this.authService.signPayLoad(payload);
return newob;
}
@Get('all')
@ApiBearerAuth()
@UseGuards(AuthGuard('jwt'))
async getAllUsers() {
return await this.userService.getAllUsers();
}
@Post('confirm/:token')
async confirmEmail(@Param() token: string) {
const user = await this.userService.ConfirmEmail(token);
return user;
}
}
Может кто-нибудь, пожалуйста, помогите мне Спасибо