登录(Passport 策略)
安装包:
$ npm install --save @nestjs/passport passport passport-local
$ npm install --save-dev @types/passport-local
实现思路:
使用@UseGuards(AuthGuard(‘local’))装饰的路由被调用时会先执行local.strategy.ts文件的validate方法,在validate方法中验证账号密码是否正确,验证失败自动返回401,验证成功会在请求头上生成一个user对象。
auth.controller.ts
import { Controller, Request, Post,, UseGuards, Get, Query } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { AuthService } from './auth.service';
@Controller('auth')
export class AuthController {
constructor(
private readonly authService: AuthService,
) {}
// 1.先进行登录验证,执行local.strategy.ts文件中的calidate方法
@UseGuards(AuthGuard('local'))
@Post('login')
async login(@Request() req) {
// 4.验证通过以后执行这个函数