UNPKG

next-csrf

Version:

CSRF mitigation library for Next.js

153 lines (137 loc) 15.9 kB
module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = require('../ssr-module-cache.js'); /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ var threw = true; /******/ try { /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ threw = false; /******/ } finally { /******/ if(threw) delete installedModules[moduleId]; /******/ } /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = "./pages/login.js"); /******/ }) /************************************************************************/ /******/ ({ /***/ "./lib/csrf.js": /*!*********************!*\ !*** ./lib/csrf.js ***! \*********************/ /*! exports provided: csrf, setup, csrfToken */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"csrf\", function() { return csrf; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setup\", function() { return setup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"csrfToken\", function() { return csrfToken; });\n/* harmony import */ var next_csrf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next-csrf */ \"next-csrf\");\n/* harmony import */ var next_csrf__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_csrf__WEBPACK_IMPORTED_MODULE_0__);\n\nconst options = {\n // eslint-disable-next-line no-undef\n secret: process.env.CSRF_SECRET\n};\nconsole.log(\"options\", options);\nconst {\n csrf,\n setup,\n csrfToken\n} = Object(next_csrf__WEBPACK_IMPORTED_MODULE_0__[\"nextCsrf\"])(options);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9saWIvY3NyZi5qcz9iYTEwIl0sIm5hbWVzIjpbIm9wdGlvbnMiLCJzZWNyZXQiLCJwcm9jZXNzIiwiZW52IiwiQ1NSRl9TRUNSRVQiLCJjb25zb2xlIiwibG9nIiwiY3NyZiIsInNldHVwIiwiY3NyZlRva2VuIiwibmV4dENzcmYiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUEsTUFBTUEsT0FBTyxHQUFHO0FBQ2Q7QUFDQUMsUUFBTSxFQUFFQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUM7QUFGTixDQUFoQjtBQUtBQyxPQUFPLENBQUNDLEdBQVIsQ0FBWSxTQUFaLEVBQXVCTixPQUF2QjtBQUVPLE1BQU07QUFBRU8sTUFBRjtBQUFRQyxPQUFSO0FBQWVDO0FBQWYsSUFBNkJDLDBEQUFRLENBQUNWLE9BQUQsQ0FBM0MiLCJmaWxlIjoiLi9saWIvY3NyZi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5leHRDc3JmIH0gZnJvbSBcIm5leHQtY3NyZlwiO1xuXG5jb25zdCBvcHRpb25zID0ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgc2VjcmV0OiBwcm9jZXNzLmVudi5DU1JGX1NFQ1JFVCxcbn07XG5cbmNvbnNvbGUubG9nKFwib3B0aW9uc1wiLCBvcHRpb25zKTtcblxuZXhwb3J0IGNvbnN0IHsgY3NyZiwgc2V0dXAsIGNzcmZUb2tlbiB9ID0gbmV4dENzcmYob3B0aW9ucyk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./lib/csrf.js\n"); /***/ }), /***/ "./pages/login.js": /*!************************!*\ !*** ./pages/login.js ***! \************************/ /*! exports provided: getServerSideProps, default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getServerSideProps\", function() { return getServerSideProps; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_Home_module_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/Home.module.css */ \"./styles/Home.module.css\");\n/* harmony import */ var _styles_Home_module_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_Home_module_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_csrf__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/csrf */ \"./lib/csrf.js\");\nvar _jsxFileName = \"/home/jolvera/proj/next-csrf/example/pages/login.js\";\n\nvar __jsx = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement;\n\n\n\nfunction Login() {\n const requestWithToken = event => {\n event.preventDefault();\n fetch(\"/api/protected\", {\n method: \"post\"\n }).then(response => {\n if (response.ok) {\n console.log(\"protected response ok\");\n console.log(response);\n }\n }).catch(error => console.error(error));\n };\n\n return __jsx(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, __jsx(\"p\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 7\n }\n }, \"Use \\\"demo\\\" for both login and password\"), __jsx(\"form\", {\n className: _styles_Home_module_css__WEBPACK_IMPORTED_MODULE_1___default.a.form,\n onSubmit: requestWithToken,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 7\n }\n }, __jsx(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 9\n }\n }, \"Login\", __jsx(\"input\", {\n type: \"text\",\n required: true,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }\n })), __jsx(\"label\", {\n htmlFor: \"password\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }\n }, \"Password\", __jsx(\"input\", {\n type: \"password\",\n required: true,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }\n })), __jsx(\"button\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 9\n }\n }, \"Submit\")));\n}\n\nconst getServerSideProps = Object(_lib_csrf__WEBPACK_IMPORTED_MODULE_2__[\"setup\"])(async ({\n req,\n res\n}) => {\n return {\n props: {}\n };\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (Login);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wYWdlcy9sb2dpbi5qcz8zYjY5Il0sIm5hbWVzIjpbIkxvZ2luIiwicmVxdWVzdFdpdGhUb2tlbiIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJmZXRjaCIsIm1ldGhvZCIsInRoZW4iLCJyZXNwb25zZSIsIm9rIiwiY29uc29sZSIsImxvZyIsImNhdGNoIiwiZXJyb3IiLCJzdHlsZXMiLCJmb3JtIiwiZ2V0U2VydmVyU2lkZVByb3BzIiwic2V0dXAiLCJyZXEiLCJyZXMiLCJwcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7O0FBRUEsU0FBU0EsS0FBVCxHQUFpQjtBQUNmLFFBQU1DLGdCQUFnQixHQUFJQyxLQUFELElBQVc7QUFDbENBLFNBQUssQ0FBQ0MsY0FBTjtBQUVBQyxTQUFLLENBQUMsZ0JBQUQsRUFBbUI7QUFDdEJDLFlBQU0sRUFBRTtBQURjLEtBQW5CLENBQUwsQ0FHR0MsSUFISCxDQUdTQyxRQUFELElBQWM7QUFDbEIsVUFBSUEsUUFBUSxDQUFDQyxFQUFiLEVBQWlCO0FBQ2ZDLGVBQU8sQ0FBQ0MsR0FBUixDQUFZLHVCQUFaO0FBQ0FELGVBQU8sQ0FBQ0MsR0FBUixDQUFZSCxRQUFaO0FBQ0Q7QUFDRixLQVJILEVBU0dJLEtBVEgsQ0FTVUMsS0FBRCxJQUFXSCxPQUFPLENBQUNHLEtBQVIsQ0FBY0EsS0FBZCxDQVRwQjtBQVVELEdBYkQ7O0FBZUEsU0FDRSxtRUFDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdEQURGLEVBRUU7QUFBTSxhQUFTLEVBQUVDLDhEQUFNLENBQUNDLElBQXhCO0FBQThCLFlBQVEsRUFBRWIsZ0JBQXhDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsS0FDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGNBRUU7QUFBTyxRQUFJLEVBQUMsTUFBWjtBQUFtQixZQUFRLE1BQTNCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFGRixDQURGLEVBTUU7QUFBTyxXQUFPLEVBQUMsVUFBZjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQUVFO0FBQU8sUUFBSSxFQUFDLFVBQVo7QUFBdUIsWUFBUSxNQUEvQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBRkYsQ0FORixFQVdFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsY0FYRixDQUZGLENBREY7QUFrQkQ7O0FBRU0sTUFBTWMsa0JBQWtCLEdBQUdDLHVEQUFLLENBQUMsT0FBTztBQUFFQyxLQUFGO0FBQU9DO0FBQVAsQ0FBUCxLQUF3QjtBQUM5RCxTQUFPO0FBQUVDLFNBQUssRUFBRTtBQUFULEdBQVA7QUFDRCxDQUZzQyxDQUFoQztBQUlRbkIsb0VBQWYiLCJmaWxlIjoiLi9wYWdlcy9sb2dpbi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZXMgZnJvbSBcIi4uL3N0eWxlcy9Ib21lLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IHNldHVwIH0gZnJvbSBcIi4uL2xpYi9jc3JmXCI7XG5cbmZ1bmN0aW9uIExvZ2luKCkge1xuICBjb25zdCByZXF1ZXN0V2l0aFRva2VuID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGZldGNoKFwiL2FwaS9wcm90ZWN0ZWRcIiwge1xuICAgICAgbWV0aG9kOiBcInBvc3RcIixcbiAgICB9KVxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwicHJvdGVjdGVkIHJlc3BvbnNlIG9rXCIpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IGNvbnNvbGUuZXJyb3IoZXJyb3IpKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8cD5Vc2UgXCJkZW1vXCIgZm9yIGJvdGggbG9naW4gYW5kIHBhc3N3b3JkPC9wPlxuICAgICAgPGZvcm0gY2xhc3NOYW1lPXtzdHlsZXMuZm9ybX0gb25TdWJtaXQ9e3JlcXVlc3RXaXRoVG9rZW59PlxuICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgTG9naW5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZXF1aXJlZCAvPlxuICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgIDxsYWJlbCBodG1sRm9yPVwicGFzc3dvcmRcIj5cbiAgICAgICAgICBQYXNzd29yZFxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiByZXF1aXJlZCAvPlxuICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgIDxidXR0b24+U3VibWl0PC9idXR0b24+XG4gICAgICA8L2Zvcm0+XG4gICAgPC8+XG4gICk7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRTZXJ2ZXJTaWRlUHJvcHMgPSBzZXR1cChhc3luYyAoeyByZXEsIHJlcyB9KSA9PiB7XG4gIHJldHVybiB7IHByb3BzOiB7fSB9O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IExvZ2luO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/login.js\n"); /***/ }), /***/ "./styles/Home.module.css": /*!********************************!*\ !*** ./styles/Home.module.css ***! \********************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("// Exports\nmodule.exports = {\n\t\"container\": \"Home_container__1EcsU\",\n\t\"form\": \"Home_form__1fOyp\",\n\t\"info\": \"Home_info__337F2\",\n\t\"nav\": \"Home_nav__1c1C3\",\n\t\"main\": \"Home_main__1x8gC\",\n\t\"footer\": \"Home_footer__1WdhD\",\n\t\"title\": \"Home_title__3DjR7\",\n\t\"description\": \"Home_description__17Z4F\",\n\t\"code\": \"Home_code__axx2Y\",\n\t\"grid\": \"Home_grid__2Ei2F\",\n\t\"button\": \"Home_button__Xc9mA\",\n\t\"card\": \"Home_card__2SdtB\",\n\t\"logo\": \"Home_logo__1YbrH\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zdHlsZXMvSG9tZS5tb2R1bGUuY3NzPzRmYmEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9zdHlsZXMvSG9tZS5tb2R1bGUuY3NzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRXhwb3J0c1xubW9kdWxlLmV4cG9ydHMgPSB7XG5cdFwiY29udGFpbmVyXCI6IFwiSG9tZV9jb250YWluZXJfXzFFY3NVXCIsXG5cdFwiZm9ybVwiOiBcIkhvbWVfZm9ybV9fMWZPeXBcIixcblx0XCJpbmZvXCI6IFwiSG9tZV9pbmZvX18zMzdGMlwiLFxuXHRcIm5hdlwiOiBcIkhvbWVfbmF2X18xYzFDM1wiLFxuXHRcIm1haW5cIjogXCJIb21lX21haW5fXzF4OGdDXCIsXG5cdFwiZm9vdGVyXCI6IFwiSG9tZV9mb290ZXJfXzFXZGhEXCIsXG5cdFwidGl0bGVcIjogXCJIb21lX3RpdGxlX18zRGpSN1wiLFxuXHRcImRlc2NyaXB0aW9uXCI6IFwiSG9tZV9kZXNjcmlwdGlvbl9fMTdaNEZcIixcblx0XCJjb2RlXCI6IFwiSG9tZV9jb2RlX19heHgyWVwiLFxuXHRcImdyaWRcIjogXCJIb21lX2dyaWRfXzJFaTJGXCIsXG5cdFwiYnV0dG9uXCI6IFwiSG9tZV9idXR0b25fX1hjOW1BXCIsXG5cdFwiY2FyZFwiOiBcIkhvbWVfY2FyZF9fMlNkdEJcIixcblx0XCJsb2dvXCI6IFwiSG9tZV9sb2dvX18xWWJySFwiXG59O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./styles/Home.module.css\n"); /***/ }), /***/ "next-csrf": /*!****************************!*\ !*** external "next-csrf" ***! \****************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = require(\"next-csrf\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJuZXh0LWNzcmZcIj81ZjkxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6Im5leHQtY3NyZi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIm5leHQtY3NyZlwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///next-csrf\n"); /***/ }), /***/ "react": /*!************************!*\ !*** external "react" ***! \************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("module.exports = require(\"react\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJyZWFjdFwiPzU4OGUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoicmVhY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///react\n"); /***/ }) /******/ });