refresh-tokens
Version:
refresh tokens library for nodejs server with mongodb
58 lines (57 loc) • 2.59 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const mongoose_1 = __importDefault(require("mongoose"));
const swagger_ui_express_1 = __importDefault(require("swagger-ui-express"));
const controllers_1 = __importDefault(require("./mongo/controllers"));
const swagger_1 = __importDefault(require("./swagger"));
class RefreshTokens {
constructor(data) {
mongoose_1.default.set('useCreateIndex', true);
this.expiresIn = data.expiresIn;
this.jwtSecret = data.jwtSecret;
}
// connect to mongoDB
connectToDB(connectionData, callback) {
mongoose_1.default
.connect(connectionData.uri, connectionData.options)
.then(() => {
callback();
})
.catch((error) => {
callback(error);
});
}
// build the endpoint to refesh tokens
init(app) {
const tokens = new controllers_1.default(this.jwtSecret, this.expiresIn);
app.post('/refresh-tokens/refresh', (req, res) => __awaiter(this, void 0, void 0, function* () {
try {
const token = req.headers.token;
if (!token) {
return res.status(403).send('missing header token');
}
const data = yield tokens.refresh(token);
res.send(data);
}
catch (error) {
console.log('refresh-tokens register error:', error);
res.status(500).send(error.message);
}
}));
app.use('/refresh-tokens-api-docs', swagger_ui_express_1.default.serve);
app.get('/refresh-tokens-api-docs', swagger_ui_express_1.default.setup(swagger_1.default));
}
}
exports.default = RefreshTokens;
;