Compare commits

...

3 Commits

Author SHA1 Message Date
Kayne Ruse 267ecaa705 Added a typecheck to password field 2023-05-15 08:03:54 +10:00
Kayne Ruse 3a8cfd39ed BUGFIX: force a logout if refresh token is too old 2023-05-05 03:56:24 +10:00
Kayne Ruse b157ef18ff Updated dependencies 2023-05-03 21:31:30 +10:00
4 changed files with 30 additions and 21 deletions
+17 -17
View File
@@ -1,12 +1,12 @@
{ {
"name": "auth-server", "name": "auth-server",
"version": "1.7.2", "version": "1.7.4",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "auth-server", "name": "auth-server",
"version": "1.7.2", "version": "1.7.4",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"bcryptjs": "^2.4.3", "bcryptjs": "^2.4.3",
@@ -15,14 +15,14 @@
"dotenv": "^16.0.3", "dotenv": "^16.0.3",
"express": "^4.18.2", "express": "^4.18.2",
"jsonwebtoken": "^9.0.0", "jsonwebtoken": "^9.0.0",
"mariadb": "^3.1.0", "mariadb": "^3.1.1",
"node-cron": "^3.0.2", "node-cron": "^3.0.2",
"node-fetch": "^2.6.9", "node-fetch": "^2.6.9",
"nodemailer": "^6.9.1", "nodemailer": "^6.9.1",
"sequelize": "^6.28.0" "sequelize": "^6.31.1"
}, },
"devDependencies": { "devDependencies": {
"nodemon": "^2.0.20" "nodemon": "^2.0.22"
} }
}, },
"node_modules/@types/debug": { "node_modules/@types/debug": {
@@ -49,9 +49,9 @@
"integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw=="
}, },
"node_modules/@types/validator": { "node_modules/@types/validator": {
"version": "13.7.14", "version": "13.7.15",
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.14.tgz", "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.15.tgz",
"integrity": "sha512-J6OAed6rhN6zyqL9Of6ZMamhlsOEU/poBVvbHr/dKOYKTeuYYMlDkMv+b6UUV0o2i0tw73cgyv/97WTWaUl0/g==" "integrity": "sha512-yeinDVQunb03AEP8luErFcyf/7Lf7AzKCD0NXfgVoGCCQDNpZET8Jgq74oBgqKld3hafLbfzt/3inUdQvaFeXQ=="
}, },
"node_modules/abbrev": { "node_modules/abbrev": {
"version": "1.1.1", "version": "1.1.1",
@@ -762,9 +762,9 @@
} }
}, },
"node_modules/moment-timezone": { "node_modules/moment-timezone": {
"version": "0.5.42", "version": "0.5.43",
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.42.tgz", "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz",
"integrity": "sha512-tjI9goqwzkflKSTxJo+jC/W8riTFwEjjunssmFvAWlvNVApjbkJM7UHggyKO0q1Fd/kZVKY77H7C9A0XKhhAFw==", "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==",
"dependencies": { "dependencies": {
"moment": "^2.29.4" "moment": "^2.29.4"
}, },
@@ -1052,9 +1052,9 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
}, },
"node_modules/semver": { "node_modules/semver": {
"version": "7.3.8", "version": "7.5.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz",
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==",
"dependencies": { "dependencies": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
}, },
@@ -1105,9 +1105,9 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
}, },
"node_modules/sequelize": { "node_modules/sequelize": {
"version": "6.29.3", "version": "6.31.1",
"resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.29.3.tgz", "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.31.1.tgz",
"integrity": "sha512-iLbrN//Eh18zXIlNEUNQx7lk5R+SF39m+66bnrT3x8WB8sbxMH2hF4vw8RIa9ZzB1+c94rclMv/i8fngXmb/4A==", "integrity": "sha512-cahWtRrYLjqoZP/aurGBoaxn29qQCF4bxkAUPEQ/ozjJjt6mtL4Q113S3N39mQRmX5fgxRbli+bzZARP/N51eg==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
+4 -4
View File
@@ -1,6 +1,6 @@
{ {
"name": "auth-server", "name": "auth-server",
"version": "1.7.2", "version": "1.7.4",
"description": "An API centric auth server. Uses Sequelize and mariaDB by default.", "description": "An API centric auth server. Uses Sequelize and mariaDB by default.",
"main": "server/server.js", "main": "server/server.js",
"scripts": { "scripts": {
@@ -25,13 +25,13 @@
"dotenv": "^16.0.3", "dotenv": "^16.0.3",
"express": "^4.18.2", "express": "^4.18.2",
"jsonwebtoken": "^9.0.0", "jsonwebtoken": "^9.0.0",
"mariadb": "^3.1.0", "mariadb": "^3.1.1",
"node-cron": "^3.0.2", "node-cron": "^3.0.2",
"node-fetch": "^2.6.9", "node-fetch": "^2.6.9",
"nodemailer": "^6.9.1", "nodemailer": "^6.9.1",
"sequelize": "^6.28.0" "sequelize": "^6.31.1"
}, },
"devDependencies": { "devDependencies": {
"nodemon": "^2.0.20" "nodemon": "^2.0.22"
} }
} }
+4
View File
@@ -83,6 +83,10 @@ const validateDetails = async (body) => {
return 'Missing password'; return 'Missing password';
} }
if (typeof body.password != "string") {
return 'Invalid password';
}
if (body.password.length < 8) { if (body.password.length < 8) {
return 'Password too short'; return 'Password too short';
} }
+5
View File
@@ -25,6 +25,11 @@ const TokenProvider = props => {
localStorage.setItem("accessToken", accessToken); localStorage.setItem("accessToken", accessToken);
}, [accessToken]); }, [accessToken]);
//force a logout if refresh token is too old
if (accessToken && (new Date(Date.now() - 60 * 60 * 24 * 30 * 1000).getTime() > decode(accessToken).exp * 1000)) {
forceLogout();
}
//wrap the default fetch function //wrap the default fetch function
const tokenFetch = async (url, options) => { const tokenFetch = async (url, options) => {
//use this? //use this?