mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 02:06:01 +00:00
SYNC: checking logged users
This commit is contained in:
committed by
Diflow
parent
16d2a9bf99
commit
ac40bd1e17
@@ -21,7 +21,13 @@ const {
|
|||||||
} = require('../utility/cloudIntf');
|
} = require('../utility/cloudIntf');
|
||||||
const socket = require('../utility/socket');
|
const socket = require('../utility/socket');
|
||||||
const { sendToAuditLog } = require('../utility/auditlog');
|
const { sendToAuditLog } = require('../utility/auditlog');
|
||||||
const { isLoginLicensed, LOGIN_LIMIT_ERROR } = require('../utility/loginchecker');
|
const {
|
||||||
|
isLoginLicensed,
|
||||||
|
LOGIN_LIMIT_ERROR,
|
||||||
|
markTokenAsLoggedIn,
|
||||||
|
markUserAsActive,
|
||||||
|
markLoginAsLoggedOut,
|
||||||
|
} = require('../utility/loginchecker');
|
||||||
|
|
||||||
const logger = getLogger('auth');
|
const logger = getLogger('auth');
|
||||||
|
|
||||||
@@ -79,7 +85,7 @@ function authMiddleware(req, res, next) {
|
|||||||
try {
|
try {
|
||||||
const decoded = jwt.verify(token, getTokenSecret());
|
const decoded = jwt.verify(token, getTokenSecret());
|
||||||
req.user = decoded;
|
req.user = decoded;
|
||||||
storage.markUserAsActive(decoded.licenseUid);
|
markUserAsActive(decoded.licenseUid, token);
|
||||||
|
|
||||||
return next();
|
return next();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -124,19 +130,23 @@ module.exports = {
|
|||||||
message: 'Administration login successful',
|
message: 'Administration login successful',
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
const licenseUid = `superadmin`;
|
||||||
accessToken: jwt.sign(
|
const accessToken = jwt.sign(
|
||||||
{
|
{
|
||||||
login: 'superadmin',
|
login: 'superadmin',
|
||||||
permissions: await storage.loadSuperadminPermissions(),
|
permissions: await storage.loadSuperadminPermissions(),
|
||||||
roleId: -3,
|
roleId: -3,
|
||||||
licenseUid: `superadmin`,
|
licenseUid,
|
||||||
},
|
},
|
||||||
getTokenSecret(),
|
getTokenSecret(),
|
||||||
{
|
{
|
||||||
expiresIn: getTokenLifetime(),
|
expiresIn: getTokenLifetime(),
|
||||||
}
|
}
|
||||||
),
|
);
|
||||||
|
markTokenAsLoggedIn(licenseUid, accessToken);
|
||||||
|
|
||||||
|
return {
|
||||||
|
accessToken,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -192,5 +202,17 @@ module.exports = {
|
|||||||
return tokenHolder;
|
return tokenHolder;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
logoutAdmin_meta: true,
|
||||||
|
async logoutAdmin() {
|
||||||
|
await markLoginAsLoggedOut('superadmin');
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
|
||||||
|
logoutUser_meta: true,
|
||||||
|
async logoutUser({}, req) {
|
||||||
|
await markLoginAsLoggedOut(req?.user?.licenseUid);
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
|
||||||
authMiddleware,
|
authMiddleware,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -311,9 +311,11 @@ export async function doLogout() {
|
|||||||
const category = getAuthCategory(config);
|
const category = getAuthCategory(config);
|
||||||
|
|
||||||
if (category == 'admin') {
|
if (category == 'admin') {
|
||||||
|
await apiCall('auth/logout-admin');
|
||||||
localStorage.removeItem('adminAccessToken');
|
localStorage.removeItem('adminAccessToken');
|
||||||
internalRedirectTo('/admin-login.html?is-admin=true');
|
internalRedirectTo('/admin-login.html?is-admin=true');
|
||||||
} else if (category == 'token') {
|
} else if (category == 'token') {
|
||||||
|
await apiCall('auth/logout-user');
|
||||||
localStorage.removeItem('accessToken');
|
localStorage.removeItem('accessToken');
|
||||||
if (config.logoutUrl) {
|
if (config.logoutUrl) {
|
||||||
window.location.href = config.logoutUrl;
|
window.location.href = config.logoutUrl;
|
||||||
|
|||||||
Reference in New Issue
Block a user