feat: add DELETE /access-tokens/:token
This commit is contained in:
@@ -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();
|
||||||
|
};
|
@@ -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;
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user