mirror of
https://github.com/plankanban/planka.git
synced 2025-07-20 21:59:43 +02:00
feat: Invalidate access token on logout
This commit is contained in:
parent
640908320a
commit
8109936ce2
26 changed files with 242 additions and 37 deletions
|
@ -17,6 +17,15 @@ module.exports = function defineCurrentUserHook(sails) {
|
|||
return null;
|
||||
}
|
||||
|
||||
const session = await Session.findOne({
|
||||
accessToken,
|
||||
deletedAt: null,
|
||||
});
|
||||
|
||||
if (!session) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const user = await sails.helpers.users.getOne(payload.subject);
|
||||
|
||||
if (user && user.passwordChangedAt > payload.issuedAt) {
|
||||
|
@ -43,8 +52,14 @@ module.exports = function defineCurrentUserHook(sails) {
|
|||
|
||||
if (authorizationHeader && TOKEN_PATTERN.test(authorizationHeader)) {
|
||||
const accessToken = authorizationHeader.replace(TOKEN_PATTERN, '');
|
||||
const currentUser = await getUser(accessToken);
|
||||
|
||||
req.currentUser = await getUser(accessToken);
|
||||
if (currentUser) {
|
||||
Object.assign(req, {
|
||||
accessToken,
|
||||
currentUser,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return next();
|
||||
|
@ -52,8 +67,17 @@ module.exports = function defineCurrentUserHook(sails) {
|
|||
},
|
||||
'/attachments/*': {
|
||||
async fn(req, res, next) {
|
||||
if (req.cookies.accessToken) {
|
||||
req.currentUser = await getUser(req.cookies.accessToken);
|
||||
const { accessToken } = req.cookies;
|
||||
|
||||
if (accessToken) {
|
||||
const currentUser = await getUser(accessToken);
|
||||
|
||||
if (currentUser) {
|
||||
Object.assign(req, {
|
||||
accessToken,
|
||||
currentUser,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return next();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue