UNPKG

dewmyth-auth-nestjs-mongo

Version:

1. Install the package

66 lines 2.88 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AuthService = void 0; const common_1 = require("@nestjs/common"); const mongoose_1 = require("@nestjs/mongoose"); const user_schema_1 = require("./schemas/user.schema"); const mongoose_2 = require("mongoose"); const brcypt = require("bcrypt"); const jwt = require("jsonwebtoken"); let AuthService = class AuthService { constructor(userModel) { this.userModel = userModel; } async createUser(createUserDTO) { const { password } = createUserDTO; const hashedPassword = await brcypt.hash(password, 10); const newUserPayload = { ...createUserDTO, password: hashedPassword, }; const createdUser = new this.userModel(newUserPayload); if (!createdUser) { throw new Error('User not created'); } return createdUser.save(); } async loginUser(loginCredentials, secret, tokenTTL) { const { email, password } = loginCredentials; const user = await this.userModel.findOne({ email }).exec(); if (!user) { throw new Error('User not found'); } const isPasswordMatch = await brcypt.compare(password, user.password); if (!isPasswordMatch) { throw new Error('Invalid credentials'); } let secretKey = secret ? secret : 'secret'; const token = jwt.sign({ email: user.email }, secretKey, { expiresIn: tokenTTL ? tokenTTL : '1h', }); return { email: user.email, token, tokenTTL: tokenTTL ? tokenTTL : `3600 ms`, }; } }; exports.AuthService = AuthService; exports.AuthService = AuthService = __decorate([ (0, common_1.Injectable)(), __param(0, (0, mongoose_1.InjectModel)(user_schema_1.User.name)), __metadata("design:paramtypes", [mongoose_2.Model]) ], AuthService); //# sourceMappingURL=auth.service.js.map