keystone
Version:
Web Application Framework and Admin GUI / Content Management System built on Express.js and Mongoose
22 lines (20 loc) • 723 B
JavaScript
function signout (req, res) {
var keystone = req.keystone;
if (!keystone.security.csrf.validate(req)) {
return res.apiError(403, 'invalid csrf');
}
var user = req.user;
keystone.callHook(user, 'pre:signout', function (err) {
if (err) return res.status(500).json({ error: 'pre:signout error', detail: err });
res.clearCookie('keystone.uid');
req.user = null;
req.session.regenerate(function (err) {
if (err) return res.status(500).json({ error: 'session error', detail: err });
keystone.callHook(user, 'post:signout', function (err) {
if (err) return res.status(500).json({ error: 'post:signout error', detail: err });
res.json({ success: true });
});
});
});
}
module.exports = signout;