Newer
Older
import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
import { UsersService } from '../users/users.service';
import { JwtService } from '@nestjs/jwt';
import { User } from '../users/schemas/user.schema';
@Injectable()
export class AuthService {
constructor(private usersService: UsersService, private jwtService: JwtService) {}
async validateUser(loginDto: LoginDto): Promise<any> {
const user = await this.usersService.findOne(loginDto.email);
if (user) {
return user;
async login(loginDto: LoginDto): Promise<{ username; name; surname; token }> {
const user: User = await this.usersService.findByLogin(loginDto);
if (!user.emailVerified) {
throw new HttpException('Invalid credentials', HttpStatus.UNAUTHORIZED);
}
// generate and sign token
const token = this._createToken(user);
return {
username: user.email,
name: user.name,
surname: user.surname,
const local = DateTime.local().setZone('Europe/Paris');
accessToken: this.jwtService.sign({ email: user.email, role: user.role }),