payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
45 lines (44 loc) • 5.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _httpstatus = /*#__PURE__*/ _interop_require_default(require("http-status"));
const _errors = require("../../errors");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
async function logout(incomingArgs) {
let args = incomingArgs;
const { collection, collection: { config: collectionConfig }, req, req: { payload: { config }, user }, res } = incomingArgs;
if (!user) throw new _errors.APIError('No User', _httpstatus.default.BAD_REQUEST);
if (user.collection !== collectionConfig.slug) throw new _errors.APIError('Incorrect collection', _httpstatus.default.FORBIDDEN);
const cookieOptions = {
domain: undefined,
httpOnly: true,
path: '/',
sameSite: collectionConfig.auth.cookies.sameSite,
secure: collectionConfig.auth.cookies.secure
};
if (collectionConfig.auth.cookies.domain) cookieOptions.domain = collectionConfig.auth.cookies.domain;
await collection.config.hooks.afterLogout.reduce(async (priorHook, hook)=>{
await priorHook;
args = await hook({
collection: args.collection?.config,
context: req.context,
req,
res
}) || args;
}, Promise.resolve());
res.clearCookie(`${config.cookiePrefix}-token`, cookieOptions);
return req.t('authentication:loggedOutSuccessfully');
}
const _default = logout;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL29wZXJhdGlvbnMvbG9nb3V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVzcG9uc2UgfSBmcm9tICdleHByZXNzJ1xuXG5pbXBvcnQgaHR0cFN0YXR1cyBmcm9tICdodHRwLXN0YXR1cydcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uLy4uL2V4cHJlc3MvdHlwZXMnXG5cbmltcG9ydCB7IEFQSUVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3JzJ1xuXG5leHBvcnQgdHlwZSBBcmd1bWVudHMgPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICByZXM6IFJlc3BvbnNlXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvZ291dChpbmNvbWluZ0FyZ3M6IEFyZ3VtZW50cyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGxldCBhcmdzID0gaW5jb21pbmdBcmdzXG4gIGNvbnN0IHtcbiAgICBjb2xsZWN0aW9uLFxuICAgIGNvbGxlY3Rpb246IHsgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnIH0sXG4gICAgcmVxLFxuICAgIHJlcToge1xuICAgICAgcGF5bG9hZDogeyBjb25maWcgfSxcbiAgICAgIHVzZXIsXG4gICAgfSxcbiAgICByZXMsXG4gIH0gPSBpbmNvbWluZ0FyZ3NcblxuICBpZiAoIXVzZXIpIHRocm93IG5ldyBBUElFcnJvcignTm8gVXNlcicsIGh0dHBTdGF0dXMuQkFEX1JFUVVFU1QpXG4gIGlmICh1c2VyLmNvbGxlY3Rpb24gIT09IGNvbGxlY3Rpb25Db25maWcuc2x1ZylcbiAgICB0aHJvdyBuZXcgQVBJRXJyb3IoJ0luY29ycmVjdCBjb2xsZWN0aW9uJywgaHR0cFN0YXR1cy5GT1JCSURERU4pXG5cbiAgY29uc3QgY29va2llT3B0aW9ucyA9IHtcbiAgICBkb21haW46IHVuZGVmaW5lZCxcbiAgICBodHRwT25seTogdHJ1ZSxcbiAgICBwYXRoOiAnLycsXG4gICAgc2FtZVNpdGU6IGNvbGxlY3Rpb25Db25maWcuYXV0aC5jb29raWVzLnNhbWVTaXRlLFxuICAgIHNlY3VyZTogY29sbGVjdGlvbkNvbmZpZy5hdXRoLmNvb2tpZXMuc2VjdXJlLFxuICB9XG5cbiAgaWYgKGNvbGxlY3Rpb25Db25maWcuYXV0aC5jb29raWVzLmRvbWFpbilcbiAgICBjb29raWVPcHRpb25zLmRvbWFpbiA9IGNvbGxlY3Rpb25Db25maWcuYXV0aC5jb29raWVzLmRvbWFpblxuXG4gIGF3YWl0IGNvbGxlY3Rpb24uY29uZmlnLmhvb2tzLmFmdGVyTG9nb3V0LnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICBhcmdzID1cbiAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgY29sbGVjdGlvbjogYXJncy5jb2xsZWN0aW9uPy5jb25maWcsXG4gICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICByZXEsXG4gICAgICAgIHJlcyxcbiAgICAgIH0pKSB8fCBhcmdzXG4gIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gIHJlcy5jbGVhckNvb2tpZShgJHtjb25maWcuY29va2llUHJlZml4fS10b2tlbmAsIGNvb2tpZU9wdGlvbnMpXG5cbiAgcmV0dXJuIHJlcS50KCdhdXRoZW50aWNhdGlvbjpsb2dnZWRPdXRTdWNjZXNzZnVsbHknKVxufVxuXG5leHBvcnQgZGVmYXVsdCBsb2dvdXRcbiJdLCJuYW1lcyI6WyJsb2dvdXQiLCJpbmNvbWluZ0FyZ3MiLCJhcmdzIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsImNvbGxlY3Rpb25Db25maWciLCJyZXEiLCJwYXlsb2FkIiwidXNlciIsInJlcyIsIkFQSUVycm9yIiwiaHR0cFN0YXR1cyIsIkJBRF9SRVFVRVNUIiwic2x1ZyIsIkZPUkJJRERFTiIsImNvb2tpZU9wdGlvbnMiLCJkb21haW4iLCJ1bmRlZmluZWQiLCJodHRwT25seSIsInBhdGgiLCJzYW1lU2l0ZSIsImF1dGgiLCJjb29raWVzIiwic2VjdXJlIiwiaG9va3MiLCJhZnRlckxvZ291dCIsInJlZHVjZSIsInByaW9ySG9vayIsImhvb2siLCJjb250ZXh0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJjbGVhckNvb2tpZSIsImNvb2tpZVByZWZpeCIsInQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBNERBOzs7ZUFBQTs7O21FQTFEdUI7d0JBS0U7Ozs7OztBQVF6QixlQUFlQSxPQUFPQyxZQUF1QjtJQUMzQyxJQUFJQyxPQUFPRDtJQUNYLE1BQU0sRUFDSkUsVUFBVSxFQUNWQSxZQUFZLEVBQUVDLFFBQVFDLGdCQUFnQixFQUFFLEVBQ3hDQyxHQUFHLEVBQ0hBLEtBQUssRUFDSEMsU0FBUyxFQUFFSCxNQUFNLEVBQUUsRUFDbkJJLElBQUksRUFDTCxFQUNEQyxHQUFHLEVBQ0osR0FBR1I7SUFFSixJQUFJLENBQUNPLE1BQU0sTUFBTSxJQUFJRSxnQkFBUSxDQUFDLFdBQVdDLG1CQUFVLENBQUNDLFdBQVc7SUFDL0QsSUFBSUosS0FBS0wsVUFBVSxLQUFLRSxpQkFBaUJRLElBQUksRUFDM0MsTUFBTSxJQUFJSCxnQkFBUSxDQUFDLHdCQUF3QkMsbUJBQVUsQ0FBQ0csU0FBUztJQUVqRSxNQUFNQyxnQkFBZ0I7UUFDcEJDLFFBQVFDO1FBQ1JDLFVBQVU7UUFDVkMsTUFBTTtRQUNOQyxVQUFVZixpQkFBaUJnQixJQUFJLENBQUNDLE9BQU8sQ0FBQ0YsUUFBUTtRQUNoREcsUUFBUWxCLGlCQUFpQmdCLElBQUksQ0FBQ0MsT0FBTyxDQUFDQyxNQUFNO0lBQzlDO0lBRUEsSUFBSWxCLGlCQUFpQmdCLElBQUksQ0FBQ0MsT0FBTyxDQUFDTixNQUFNLEVBQ3RDRCxjQUFjQyxNQUFNLEdBQUdYLGlCQUFpQmdCLElBQUksQ0FBQ0MsT0FBTyxDQUFDTixNQUFNO0lBRTdELE1BQU1iLFdBQVdDLE1BQU0sQ0FBQ29CLEtBQUssQ0FBQ0MsV0FBVyxDQUFDQyxNQUFNLENBQUMsT0FBT0MsV0FBV0M7UUFDakUsTUFBTUQ7UUFFTnpCLE9BQ0UsQUFBQyxNQUFNMEIsS0FBSztZQUNWekIsWUFBWUQsS0FBS0MsVUFBVSxFQUFFQztZQUM3QnlCLFNBQVN2QixJQUFJdUIsT0FBTztZQUNwQnZCO1lBQ0FHO1FBQ0YsTUFBT1A7SUFDWCxHQUFHNEIsUUFBUUMsT0FBTztJQUVsQnRCLElBQUl1QixXQUFXLENBQUMsQ0FBQyxFQUFFNUIsT0FBTzZCLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRWxCO0lBRWhELE9BQU9ULElBQUk0QixDQUFDLENBQUM7QUFDZjtNQUVBLFdBQWVsQyJ9