feat: add DELETE /access-tokens/:token

This commit is contained in:
Ali BARIN
2024-04-24 15:04:27 +00:00
parent b54afcd922
commit 2163be4227
3 changed files with 27 additions and 1 deletions

View File

@@ -0,0 +1,15 @@
export default async (request, response) => {
const token = request.params.token;
const accessToken = await request.currentUser
.$relatedQuery('accessTokens')
.findOne({
token,
revoked_at: null,
})
.throwIfNotFound();
await accessToken.revoke();
response.status(204).send();
};

View File

@@ -27,6 +27,10 @@ class AccessToken extends Base {
}, },
}, },
}); });
async revoke() {
return await this.$query().patch({ revokedAt: new Date().toISOString() });
}
} }
export default AccessToken; export default AccessToken;

View File

@@ -1,9 +1,16 @@
import { Router } from 'express'; import { Router } from 'express';
import asyncHandler from 'express-async-handler'; import asyncHandler from 'express-async-handler';
import createAccessTokenAction from '../../../controllers/api/v1/access-tokens/create-access-token.js'; import createAccessTokenAction from '../../../controllers/api/v1/access-tokens/create-access-token.js';
import revokeAccessTokenAction from '../../../controllers/api/v1/access-tokens/revoke-access-token.js';
import { authenticateUser } from '../../../helpers/authentication.js';
const router = Router(); const router = Router();
router.post('/', asyncHandler(createAccessTokenAction)); router.post('/', asyncHandler(createAccessTokenAction));
router.delete(
'/:token',
authenticateUser,
asyncHandler(revokeAccessTokenAction)
);
export default router; export default router;