Compare commits

...

4 Commits

Author SHA1 Message Date
Kayne Ruse fd0c40d444 Docker behaviour changed, fixed 2023-06-26 23:19:53 +10:00
Kayne Ruse d3e90f7d5d Updated dependencies, bumped patch version 2023-06-26 23:05:26 +10:00
Kayne Ruse 98887eecce Fixed a logout bug 2023-06-26 22:26:06 +10:00
Kayne Ruse 95e6bd178e Fixed a filename typo 2023-05-27 23:56:22 +10:00
7 changed files with 3038 additions and 96 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
FROM node:18-bullseye-slim FROM node:18-bullseye-slim
WORKDIR "/app" WORKDIR "/app"
COPY package*.json ./ COPY package*.json /app
RUN npm install --production RUN npm install --production
COPY . /app COPY . /app
EXPOSE 3200 EXPOSE 3200
+3022 -81
View File
File diff suppressed because it is too large Load Diff
+10 -6
View File
@@ -1,6 +1,6 @@
{ {
"name": "auth-server", "name": "auth-server",
"version": "1.7.8", "version": "1.7.10",
"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": {
@@ -22,16 +22,20 @@
"bcryptjs": "^2.4.3", "bcryptjs": "^2.4.3",
"cookie-parser": "^1.4.6", "cookie-parser": "^1.4.6",
"cors": "^2.8.5", "cors": "^2.8.5",
"dotenv": "^16.0.3", "dotenv": "^16.3.1",
"express": "^4.18.2", "express": "^4.18.2",
"jsonwebtoken": "^9.0.0", "jsonwebtoken": "^9.0.0",
"mariadb": "^3.1.1", "mariadb": "^3.2.0",
"node-cron": "^3.0.2", "node-cron": "^3.0.2",
"node-fetch": "^2.6.9", "node-fetch": "^2.6.11",
"nodemailer": "^6.9.1", "nodemailer": "^6.9.3",
"sequelize": "^6.31.1" "npm": "^9.7.2",
"sequelize": "^6.32.1"
}, },
"devDependencies": { "devDependencies": {
"nodemon": "^2.0.22" "nodemon": "^2.0.22"
},
"overrides": {
"semver": "^7.5.2"
} }
} }
@@ -1,6 +1,8 @@
const Sequelize = require('sequelize'); const Sequelize = require('sequelize');
const sequelize = require('..'); const sequelize = require('..');
//DOCS: this isn't set by anything - it's a stub for now
module.exports = sequelize.define('bannedIPAddresses', { module.exports = sequelize.define('bannedIPAddresses', {
content: { content: {
type: 'varchar(320)', type: 'varchar(320)',
+1 -1
View File
@@ -24,7 +24,7 @@ app.use(cookieParser());
const database = require('./database'); const database = require('./database');
//ip-based management //ip-based management
app.use(require('./utilities/banned-up-addresses-middleware')); app.use(require('./utilities/banned-ip-addresses-middleware'));
//access the admin //access the admin
app.use('/admin', require('./admin')); app.use('/admin', require('./admin'));
@@ -27,7 +27,7 @@ module.exports = async (req, res, next) => {
return res.status(403).send("IP address banned"); return res.status(403).send("IP address banned");
} }
console.log(`IP allowed\t${address}\t\t\t${date.toTimeString()}`); // console.log(`IP allowed\t${address}\t\t\t${date.toTimeString()}`);
return next(); return next();
}; };
+1 -6
View File
@@ -25,18 +25,13 @@ 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?
let bearer = accessToken; let bearer = accessToken;
//if expired (10 minutes, normally) //if expired (10 minutes, normally)
const expired = new Date(decode(accessToken).exp * 1000) < Date.now(); const expired = new Date(decode(accessToken).exp + 600) < Date.now();
if (expired) { if (expired) {
//BUGFIX: if logging out, just skip over the refresh token //BUGFIX: if logging out, just skip over the refresh token