UNPKG

@next-nest-auth/nestauth

Version:

NestAuth is an authentication solution for NestJS applications, designed to handle user login, session management, and token-based authentication (JWT). It integrates seamlessly with Next.js and other frontends to provide a unified authentication system,

71 lines 3.25 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.NestAuthService = void 0; const common_1 = require("@nestjs/common"); const jwt_1 = require("@nestjs/jwt"); let NestAuthService = class NestAuthService { constructor(jwtService, userService, jwtExpiresIn, jwtRefreshTokenExpiresIn) { this.jwtService = jwtService; this.userService = userService; this.jwtExpiresIn = jwtExpiresIn; this.jwtRefreshTokenExpiresIn = jwtRefreshTokenExpiresIn; } async login(user) { return { accessToken: this.jwtService.sign(user, { expiresIn: this.jwtExpiresIn || "15m", }), refreshToken: this.jwtService.sign(user, { expiresIn: "7d" }), accessTokenExpiresIn: this.jwtExpiresIn || "15m", refreshTokenExpiresIn: this.jwtRefreshTokenExpiresIn || "7d", }; } async google(user) { const payload = await this.userService.google(user); if (!payload) { throw new common_1.UnauthorizedException("Invalid credentials"); } return this.login(payload); } async facebook(user) { const payload = await this.userService.facebook(user); if (!payload) { throw new common_1.UnauthorizedException("Invalid credentials"); } return this.login(payload); } async refreshToken(refreshToken) { try { const payload = this.jwtService.verify(refreshToken); const user = await this.userService.getUserById(payload.sub); if (!user) { throw new common_1.UnauthorizedException("Invalid or expired refresh token"); } return this.login(user); } catch (err) { throw new common_1.UnauthorizedException("Invalid or expired refresh token"); } } }; exports.NestAuthService = NestAuthService; exports.NestAuthService = NestAuthService = __decorate([ (0, common_1.Injectable)(), __param(1, (0, common_1.Inject)("UserService")), __param(2, (0, common_1.Inject)("JWT_EXPIRES_IN")), __param(3, (0, common_1.Inject)("JWT_REFRESH_TOKEN_EXPIRES_IN")), __metadata("design:paramtypes", [jwt_1.JwtService, Object, String, String]) ], NestAuthService); //# sourceMappingURL=nestauth.service.js.map