UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

45 lines (44 loc) 5.72 kB
"use strict"; 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