UNPKG

@sync-in/server

Version:

The secure, open-source platform for file storage, sharing, collaboration, and sync

72 lines (71 loc) 3.43 kB
/* * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com> * This file is part of Sync-in | The open source file sync and share solution * See the LICENSE file for licensing details */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "AuthTokenRefreshStrategy", { enumerable: true, get: function() { return AuthTokenRefreshStrategy; } }); const _common = require("@nestjs/common"); const _passport = require("@nestjs/passport"); const _nestjspino = require("nestjs-pino"); const _passportjwt = require("passport-jwt"); const _usermodel = require("../../applications/users/models/user.model"); const _tokeninterface = require("../interfaces/token.interface"); const _authmanagerservice = require("../services/auth-manager.service"); function _ts_decorate(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; } function _ts_metadata(k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); } let AuthTokenRefreshStrategy = class AuthTokenRefreshStrategy extends (0, _passport.PassportStrategy)(_passportjwt.Strategy, 'tokenRefresh') { // not declared properly: https://github.com/nestjs/passport/issues/929 validate(req, jwtPayload) { this.logger.assign({ user: jwtPayload.identity.login }); this.authManager.csrfValidation(req, jwtPayload, _tokeninterface.TOKEN_TYPE.REFRESH); // jwt expiration is used later to refresh cookies return new _usermodel.UserModel({ ...jwtPayload.identity, exp: jwtPayload.exp }); } static extractJWTFromCookie(req) { if (typeof req.cookies === 'object' && req.cookies[AuthTokenRefreshStrategy.refreshCookieName] !== undefined) { return req.cookies[AuthTokenRefreshStrategy.refreshCookieName]; } return null; } constructor(authManager, logger){ super({ jwtFromRequest: _passportjwt.ExtractJwt.fromExtractors([ AuthTokenRefreshStrategy.extractJWTFromCookie, _passportjwt.ExtractJwt.fromAuthHeaderAsBearerToken() ]), secretOrKey: authManager.authConfig.token.refresh.secret, ignoreExpiration: false, passReqToCallback: true }), this.authManager = authManager, this.logger = logger; AuthTokenRefreshStrategy.refreshCookieName = authManager.authConfig.token.refresh.name; } }; AuthTokenRefreshStrategy = _ts_decorate([ (0, _common.Injectable)(), _ts_metadata("design:type", Function), _ts_metadata("design:paramtypes", [ typeof _authmanagerservice.AuthManager === "undefined" ? Object : _authmanagerservice.AuthManager, typeof _nestjspino.PinoLogger === "undefined" ? Object : _nestjspino.PinoLogger ]) ], AuthTokenRefreshStrategy); //# sourceMappingURL=auth-token-refresh.strategy.js.map