增加auth/login接口,遇到Error: data and hash arguments required错误,后来发现其实是没传password参数导致;)
This commit is contained in:
parent
f8977de53d
commit
b5dc92070f
|
@ -1,9 +1,16 @@
|
||||||
import { Controller } from '@nestjs/common';
|
import { Controller, Post, Body } from '@nestjs/common';
|
||||||
import { AuthService } from './auth.service';
|
import { AuthService } from './auth.service';
|
||||||
|
import { LoginDto } from './login.dto';
|
||||||
|
|
||||||
@Controller('auth')
|
@Controller('auth')
|
||||||
export class AuthController {
|
export class AuthController {
|
||||||
constructor(
|
constructor(
|
||||||
private readonly authService: AuthService,
|
private readonly authService: AuthService,
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
|
@Post('login')
|
||||||
|
async login(@Body() data: LoginDto) {
|
||||||
|
return await this.authService.login(data)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,28 @@
|
||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable, UnauthorizedException } from '@nestjs/common';
|
||||||
import { UserService } from '../user/user.service';
|
import { UserService } from '../user/user.service';
|
||||||
|
import { LoginDto } from './login.dto';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class AuthService {
|
export class AuthService {
|
||||||
constructor(
|
constructor(
|
||||||
private readonly userService: UserService,
|
private readonly userService: UserService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
async login(data: LoginDto) {
|
||||||
|
const { username, password } = data
|
||||||
|
const entity = await this.userService.findByUserName(username)
|
||||||
|
console.log(entity)
|
||||||
|
|
||||||
|
if (!entity) {
|
||||||
|
throw new UnauthorizedException('用户不存在')
|
||||||
|
}
|
||||||
|
const match = await entity.comparePassword(password)
|
||||||
|
console.log(match)
|
||||||
|
|
||||||
|
if (!match) {
|
||||||
|
throw new UnauthorizedException('密码错误')
|
||||||
|
}
|
||||||
|
|
||||||
|
return entity
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
export class LoginDto {
|
||||||
|
readonly username: string;
|
||||||
|
readonly password: string;
|
||||||
|
}
|
|
@ -27,6 +27,7 @@ export class User {
|
||||||
}
|
}
|
||||||
|
|
||||||
async comparePassword(password: string) {
|
async comparePassword(password: string) {
|
||||||
|
console.log(password, this.password)
|
||||||
return await bcrypt.compare(password, this.password);
|
return await bcrypt.compare(password, this.password);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -43,4 +43,8 @@ export class UserService {
|
||||||
entity.password = newPassword
|
entity.password = newPassword
|
||||||
return await this.userRepository.save(entity)
|
return await this.userRepository.save(entity)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async findByUserName(username: string) {
|
||||||
|
return await this.userRepository.findOne({ username })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue