diff --git a/backend/public/js/index.js b/backend/public/js/index.js index c3d94446..72d39dc7 100644 --- a/backend/public/js/index.js +++ b/backend/public/js/index.js @@ -27379,7 +27379,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router/index.js"); -/* harmony import */ var _material_ui_lab__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/lab */ "./node_modules/@material-ui/lab/LoadingButton/LoadingButton.js"); +/* harmony import */ var react_cookie__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-cookie */ "./node_modules/react-cookie/es6/useCookies.js"); +/* harmony import */ var _material_ui_lab__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/lab */ "./node_modules/@material-ui/lab/LoadingButton/LoadingButton.js"); /* harmony import */ var _component_alert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../component/alert */ "./resources/js/component/alert.jsx"); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } @@ -27401,10 +27402,16 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + var AdminLogin = function AdminLogin() { var location = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useLocation)(); var navigator = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); + var _useCookies = (0,react_cookie__WEBPACK_IMPORTED_MODULE_4__["default"])(['auth']), + _useCookies2 = _slicedToArray(_useCookies, 2), + cookies = _useCookies2[0], + setCookie = _useCookies2[1]; + var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState2 = _slicedToArray(_useState, 2), email = _useState2[0], @@ -27460,13 +27467,18 @@ var AdminLogin = function AdminLogin() { }; }, []); - var loginOK = function loginOK(id) { + var loginOK = function loginOK(id, expires) { var token = { type: 'admin', id: id, from_login: true }; - localStorage.setItem('admin_token', JSON.stringify(token)); + var dt = new Date(new Date().getTime() + 1 * 60 * 1000); + console.log(dt); + setCookie('token', token, { + expires: dt, + path: '/admin' + }); if (location.search == '') window.location.href = "/admin/meeting";else window.location.href = location.search.replace('?redirect_to=', ''); }; @@ -27488,7 +27500,7 @@ var AdminLogin = function AdminLogin() { switch (response.data.status_code) { case 200: { - loginOK(response.data.params.id); + loginOK(response.data.params.id, response.data.params.expire); break; } @@ -27571,7 +27583,7 @@ var AdminLogin = function AdminLogin() { })] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { className: "mt-5", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_material_ui_lab__WEBPACK_IMPORTED_MODULE_4__["default"], { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_material_ui_lab__WEBPACK_IMPORTED_MODULE_5__["default"], { type: "submit", loading: submit, fullWidth: true, @@ -30385,9 +30397,23 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router/index.js"); -/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/index.js"); +/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/index.js"); +/* harmony import */ var react_cookie__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-cookie */ "./node_modules/react-cookie/es6/useCookies.js"); /* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../context */ "./resources/js/context.js"); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + + @@ -30401,13 +30427,19 @@ function AdminSide() { var _useLocation = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useLocation)(), pathname = _useLocation.pathname; + var _useCookies = (0,react_cookie__WEBPACK_IMPORTED_MODULE_4__["default"])(['user']), + _useCookies2 = _slicedToArray(_useCookies, 3), + cookies = _useCookies2[0], + setCookie = _useCookies2[1], + removeCookie = _useCookies2[2]; + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { SetSelectedItemOfSidebar(pathname.split('/')[2]); }, []); var handleLogout = function handleLogout() { axios.get('/admin/logout').then(function () { - localStorage.removeItem('admin_token'); + removeCookie('token', '/admin'); window.location.href = '/admin/login'; }); }; @@ -30432,7 +30464,7 @@ function AdminSide() { onClick: function onClick(e) { SetSelectedItemOfSidebar('meeting'); }, - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_4__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_5__.Link, { className: "mypage-nav-list__link", to: "/admin/meeting", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("i", { @@ -30446,7 +30478,7 @@ function AdminSide() { onClick: function onClick(e) { SetSelectedItemOfSidebar('child'); }, - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_4__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_5__.Link, { className: "mypage-nav-list__link", to: "/admin/child", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("i", { @@ -30460,7 +30492,7 @@ function AdminSide() { onClick: function onClick(e) { SetSelectedItemOfSidebar('parent'); }, - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_4__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_5__.Link, { className: "mypage-nav-list__link", to: "/admin/parent", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("i", { @@ -30931,8 +30963,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router/index.js"); -/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/index.js"); -/* harmony import */ var _material_ui_lab__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/lab */ "./node_modules/@material-ui/lab/LoadingButton/LoadingButton.js"); +/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/index.js"); +/* harmony import */ var _material_ui_lab__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/lab */ "./node_modules/@material-ui/lab/LoadingButton/LoadingButton.js"); +/* harmony import */ var react_cookie__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-cookie */ "./node_modules/react-cookie/es6/useCookies.js"); /* harmony import */ var _component_alert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../component/alert */ "./resources/js/component/alert.jsx"); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } @@ -30954,9 +30987,15 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + var ChildLogin = function ChildLogin() { var location = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useLocation)(); + var _useCookies = (0,react_cookie__WEBPACK_IMPORTED_MODULE_4__["default"])(['auth']), + _useCookies2 = _slicedToArray(_useCookies, 2), + cookies = _useCookies2[0], + setCookie = _useCookies2[1]; + var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), submit = _useState2[0], @@ -31014,13 +31053,17 @@ var ChildLogin = function ChildLogin() { var loginOK = function loginOK() { var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var expires = arguments.length > 1 ? arguments[1] : undefined; var token = { type: 'c-account', id: id, notice: 0, from_login: true }; - localStorage.setItem('c-account_token', JSON.stringify(token)); + setCookie('token', token, { + expires: new Date(expires).toUTCString(), + path: '/c-account' + }); localStorage.setItem('child_id', id); if (location.search == '') window.location.href = "/c-account/meeting";else window.location.href = location.search.replace('?redirect_to=', ''); }; @@ -31043,7 +31086,7 @@ var ChildLogin = function ChildLogin() { switch (response.data.status_code) { case 200: { - loginOK(response.data.params.id); + loginOK(response.data.params.id, response.data.params.expire); break; } @@ -31132,7 +31175,7 @@ var ChildLogin = function ChildLogin() { }) }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { className: "mt-5", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_material_ui_lab__WEBPACK_IMPORTED_MODULE_4__["default"], { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_material_ui_lab__WEBPACK_IMPORTED_MODULE_5__["default"], { type: "submit", loading: submit, fullWidth: true, @@ -31144,7 +31187,7 @@ var ChildLogin = function ChildLogin() { }) }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { className: "mt-5 text-center", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_router_dom__WEBPACK_IMPORTED_MODULE_5__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_router_dom__WEBPACK_IMPORTED_MODULE_6__.Link, { to: "/c-account/forgot-password", className: "ft-16 text-black text-decoration-none", children: "\u30D1\u30B9\u30EF\u30FC\u30C9\u7D1B\u5931\u306E\u65B9\u306F\u30B3\u30C1\u30E9" @@ -34526,9 +34569,23 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router/index.js"); -/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/index.js"); +/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/index.js"); +/* harmony import */ var react_cookie__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-cookie */ "./node_modules/react-cookie/es6/useCookies.js"); /* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../context */ "./resources/js/context.js"); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + + @@ -34542,13 +34599,19 @@ function ChildSide() { var _useLocation = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useLocation)(), pathname = _useLocation.pathname; + var _useCookies = (0,react_cookie__WEBPACK_IMPORTED_MODULE_4__["default"])(['user']), + _useCookies2 = _slicedToArray(_useCookies, 3), + cookies = _useCookies2[0], + setCookie = _useCookies2[1], + removeCookie = _useCookies2[2]; + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { SetSelectedItemOfSidebar(pathname.split('/')[2]); }, []); var handleLogout = function handleLogout() { axios.get('/c-account/logout').then(function () { - localStorage.removeItem('c-account_token'); + removeCookie('token', '/c-account'); window.location.href = '/c-account/login'; }); }; @@ -34573,7 +34636,7 @@ function ChildSide() { onClick: function onClick(e) { return SetSelectedItemOfSidebar('meeting'); }, - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_4__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_5__.Link, { className: "mypage-nav-list__link", to: "/c-account/meeting", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("i", { @@ -34587,7 +34650,7 @@ function ChildSide() { onClick: function onClick(e) { return SetSelectedItemOfSidebar('search'); }, - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_4__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_5__.Link, { className: "mypage-nav-list__link", to: "/c-account/search", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("i", { @@ -34601,7 +34664,7 @@ function ChildSide() { onClick: function onClick(e) { return SetSelectedItemOfSidebar('parent'); }, - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_4__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_5__.Link, { className: "mypage-nav-list__link", to: "/c-account/parent", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("i", { @@ -34615,7 +34678,7 @@ function ChildSide() { onClick: function onClick(e) { return SetSelectedItemOfSidebar('profile'); }, - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_4__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_5__.Link, { className: "user-icon mypage-nav-list__link", to: "/c-account/profile", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("figure", { @@ -34780,6 +34843,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router/index.js"); +/* harmony import */ var react_cookie__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-cookie */ "./node_modules/react-cookie/es6/useCookies.js"); /* harmony import */ var _alert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./alert */ "./resources/js/component/alert.jsx"); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } @@ -34799,6 +34863,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + function CheckLoginStatus() { var _useLocation = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useLocation)(), pathname = _useLocation.pathname; @@ -34809,19 +34874,25 @@ function CheckLoginStatus() { setSuccess = _useState2[1]; var navigator = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); + + var _useCookies = (0,react_cookie__WEBPACK_IMPORTED_MODULE_4__["default"])(['user']), + _useCookies2 = _slicedToArray(_useCookies, 3), + cookies = _useCookies2[0], + setCookie = _useCookies2[1], + removeCookie = _useCookies2[2]; + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { var acc_type = pathname.split('/')[1]; - var token = localStorage.getItem("".concat(acc_type, "_token")); + console.log(cookies.token); + var token = cookies.token; if (!token) { navigator("/".concat(acc_type, "/login")); } else { - token = JSON.parse(token); - if (token.from_login) { setSuccess('ログインに成功しました'); token.from_login = false; - localStorage.setItem("".concat(acc_type, "_token"), JSON.stringify(token)); + setCookie('token', token, "/".concat(acc_type)); } } }, [pathname]); @@ -37533,8 +37604,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router/index.js"); -/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/index.js"); -/* harmony import */ var _material_ui_lab__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/lab */ "./node_modules/@material-ui/lab/LoadingButton/LoadingButton.js"); +/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/index.js"); +/* harmony import */ var _material_ui_lab__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/lab */ "./node_modules/@material-ui/lab/LoadingButton/LoadingButton.js"); +/* harmony import */ var react_cookie__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-cookie */ "./node_modules/react-cookie/es6/useCookies.js"); /* harmony import */ var _component_alert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../component/alert */ "./resources/js/component/alert.jsx"); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } @@ -37556,9 +37628,15 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + var ParentLogin = function ParentLogin() { var location = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useLocation)(); + var _useCookies = (0,react_cookie__WEBPACK_IMPORTED_MODULE_4__["default"])(['auth']), + _useCookies2 = _slicedToArray(_useCookies, 2), + cookies = _useCookies2[0], + setCookie = _useCookies2[1]; + var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), submit = _useState2[0], @@ -37600,14 +37678,17 @@ var ParentLogin = function ParentLogin() { }; }, []); - var loginOK = function loginOK(id) { + var loginOK = function loginOK(id, expires) { var token = { type: 'p-account', id: id, notice: 0, from_login: true }; - localStorage.setItem('p-account_token', JSON.stringify(token)); + setCookie('token', token, { + expires: new Date(expires).toUTCString(), + path: '/p-account' + }); localStorage.setItem('father_id', id); if (location.search == '') window.location.href = "/p-account/meeting";else window.location.href = location.search.replace('?redirect_to=', ''); }; @@ -37630,7 +37711,7 @@ var ParentLogin = function ParentLogin() { switch (response.data.status_code) { case 200: { - loginOK(response.data.params.id); + loginOK(response.data.params.id, response.data.params.expire); break; } @@ -37719,7 +37800,7 @@ var ParentLogin = function ParentLogin() { }) }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { className: "mt-5", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_material_ui_lab__WEBPACK_IMPORTED_MODULE_4__["default"], { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_material_ui_lab__WEBPACK_IMPORTED_MODULE_5__["default"], { type: "submit", loading: submit, fullWidth: true, @@ -37731,7 +37812,7 @@ var ParentLogin = function ParentLogin() { }) }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { className: "mt-5 text-center", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_router_dom__WEBPACK_IMPORTED_MODULE_5__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_router_dom__WEBPACK_IMPORTED_MODULE_6__.Link, { to: "/p-account/forgot-password", className: "ft-16 text-black text-decoration-none", children: "\u30D1\u30B9\u30EF\u30FC\u30C9\u7D1B\u5931\u306E\u65B9\u306F\u30B3\u30C1\u30E9" @@ -43923,9 +44004,23 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router/index.js"); -/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/index.js"); +/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/index.js"); +/* harmony import */ var react_cookie__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-cookie */ "./node_modules/react-cookie/es6/useCookies.js"); /* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../context */ "./resources/js/context.js"); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + + @@ -43941,13 +44036,19 @@ function ParentSide() { var _useLocation = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useLocation)(), pathname = _useLocation.pathname; + var _useCookies = (0,react_cookie__WEBPACK_IMPORTED_MODULE_4__["default"])(['user']), + _useCookies2 = _slicedToArray(_useCookies, 3), + cookies = _useCookies2[0], + setCookie = _useCookies2[1], + removeCookie = _useCookies2[2]; + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { SetSelectedItemOfSidebar(pathname.split('/')[2]); }, []); var handleLogout = function handleLogout() { axios.get('/p-account/logout').then(function () { - localStorage.removeItem('p-account_token'); + removeCookie('token', '/p-account'); window.location.href = '/p-account/login'; }); }; @@ -43972,7 +44073,7 @@ function ParentSide() { onClick: function onClick(e) { return SetSelectedItemOfSidebar('meeting'); }, - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_4__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_5__.Link, { className: "mypage-nav-list__link", to: "/p-account/meeting", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("i", { @@ -43986,7 +44087,7 @@ function ParentSide() { onClick: function onClick(e) { return SetSelectedItemOfSidebar('favorite'); }, - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_4__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_5__.Link, { className: "mypage-nav-list__link", to: "/p-account/favorite", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("i", { @@ -44000,7 +44101,7 @@ function ParentSide() { onClick: function onClick(e) { return SetSelectedItemOfSidebar('search'); }, - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_4__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_5__.Link, { className: "mypage-nav-list__link", to: "/p-account/search", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("i", { @@ -44014,7 +44115,7 @@ function ParentSide() { onClick: function onClick(e) { return SetSelectedItemOfSidebar('child'); }, - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_4__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_5__.Link, { className: "mypage-nav-list__link", to: "/p-account/child", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("i", { @@ -44028,7 +44129,7 @@ function ParentSide() { onClick: function onClick(e) { return SetSelectedItemOfSidebar('profile'); }, - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_4__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_5__.Link, { className: "user-icon mypage-nav-list__link", to: "/p-account/profile", children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("figure", { @@ -96822,6 +96923,86 @@ var CookiesProvider = /** @class */ (function (_super) { /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CookiesProvider); +/***/ }), + +/***/ "./node_modules/react-cookie/es6/useCookies.js": +/*!*****************************************************!*\ + !*** ./node_modules/react-cookie/es6/useCookies.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ useCookies) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var _CookiesContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CookiesContext */ "./node_modules/react-cookie/es6/CookiesContext.js"); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./node_modules/react-cookie/es6/utils.js"); + + + +function useCookies(dependencies) { + var cookies = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_CookiesContext__WEBPACK_IMPORTED_MODULE_1__["default"]); + if (!cookies) { + throw new Error('Missing '); + } + var initialCookies = cookies.getAll(); + var _a = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initialCookies), allCookies = _a[0], setCookies = _a[1]; + var previousCookiesRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(allCookies); + if ((0,_utils__WEBPACK_IMPORTED_MODULE_2__.isInBrowser)()) { + (0,react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(function () { + function onChange() { + var newCookies = cookies.getAll(); + if (shouldUpdate(dependencies || null, newCookies, previousCookiesRef.current)) { + setCookies(newCookies); + } + previousCookiesRef.current = newCookies; + } + cookies.addChangeListener(onChange); + return function () { + cookies.removeChangeListener(onChange); + }; + }, [cookies]); + } + var setCookie = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () { return cookies.set.bind(cookies); }, [cookies]); + var removeCookie = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function () { return cookies.remove.bind(cookies); }, [cookies]); + return [allCookies, setCookie, removeCookie]; +} +function shouldUpdate(dependencies, newCookies, oldCookies) { + if (!dependencies) { + return true; + } + for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) { + var dependency = dependencies_1[_i]; + if (newCookies[dependency] !== oldCookies[dependency]) { + return true; + } + } + return false; +} + + +/***/ }), + +/***/ "./node_modules/react-cookie/es6/utils.js": +/*!************************************************!*\ + !*** ./node_modules/react-cookie/es6/utils.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "isInBrowser": () => (/* binding */ isInBrowser) +/* harmony export */ }); +function isInBrowser() { + return (typeof window !== 'undefined' && + typeof window.document !== 'undefined' && + typeof window.document.createElement !== 'undefined'); +} + + /***/ }), /***/ "./node_modules/react-datepicker/dist/react-datepicker.min.js": diff --git a/backend/resources/js/admin/login/index.jsx b/backend/resources/js/admin/login/index.jsx index 3e4e2cf4..0583ce89 100644 --- a/backend/resources/js/admin/login/index.jsx +++ b/backend/resources/js/admin/login/index.jsx @@ -1,5 +1,6 @@ import React, { useState, useRef, useEffect } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; +import { useCookies } from 'react-cookie'; import { LoadingButton } from '@material-ui/lab'; import Alert from '../../component/alert'; @@ -8,6 +9,7 @@ const AdminLogin = () => { const location = useLocation(); const navigator = useNavigate(); + const [cookies, setCookie] = useCookies(['auth']); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); @@ -43,13 +45,16 @@ const AdminLogin = () => { }, []) - const loginOK = (id) => { + const loginOK = (id, expires) => { let token = { type: 'admin', id: id, from_login: true }; - localStorage.setItem('admin_token', JSON.stringify(token)); + var dt = new Date(new Date().getTime() + (1*60*1000)); + console.log(dt); + + setCookie('token', token, {expires: dt, path: '/admin'}); if(location.search == '') window.location.href = "/admin/meeting"; @@ -73,7 +78,7 @@ const AdminLogin = () => { setSubmit(false) switch(response.data.status_code){ case 200: { - loginOK(response.data.params.id); + loginOK(response.data.params.id, response.data.params.expire); break; } case 422: { diff --git a/backend/resources/js/admin/side.jsx b/backend/resources/js/admin/side.jsx index c8c70e81..b45c9d8a 100644 --- a/backend/resources/js/admin/side.jsx +++ b/backend/resources/js/admin/side.jsx @@ -1,11 +1,13 @@ -import React, { useState, useContext, useEffect } from 'react'; +import React, { useContext, useEffect } from 'react'; import { Link, useLocation } from 'react-router-dom'; +import { useCookies } from 'react-cookie'; import { HeaderContext } from '../context'; export default function AdminSide() { const {selected_item_sidebar, SetSelectedItemOfSidebar} = useContext(HeaderContext); const {pathname} = useLocation(); + const [cookies, setCookie, removeCookie] = useCookies(['user']); useEffect(()=>{ SetSelectedItemOfSidebar(pathname.split('/')[2]); @@ -14,7 +16,7 @@ export default function AdminSide() { const handleLogout = () => { axios.get('/admin/logout') .then(() => { - localStorage.removeItem('admin_token'); + removeCookie('token', '/admin'); window.location.href = '/admin/login'; }) } diff --git a/backend/resources/js/child/auth/login/index.jsx b/backend/resources/js/child/auth/login/index.jsx index c29ef5cc..8238a1f1 100644 --- a/backend/resources/js/child/auth/login/index.jsx +++ b/backend/resources/js/child/auth/login/index.jsx @@ -1,12 +1,15 @@ import React, { useState, useRef, useEffect } from 'react'; import { Link, useLocation } from 'react-router-dom'; import { LoadingButton } from '@material-ui/lab'; +import { useCookies } from 'react-cookie'; + import Alert from '../../../component/alert'; const ChildLogin = () => { const location = useLocation(); + const [cookies, setCookie] = useCookies(['auth']); const [submit, setSubmit] = useState(false); @@ -42,14 +45,14 @@ const ChildLogin = () => { }, []) - const loginOK = (id = 0) =>{ + const loginOK = (id = 0, expires) =>{ let token = { type: 'c-account', id: id, notice: 0, from_login: true }; - localStorage.setItem('c-account_token', JSON.stringify(token)); + setCookie('token', token, {expires: new Date(expires).toUTCString(), path: '/c-account'}); localStorage.setItem('child_id', id); if(location.search == '') @@ -75,7 +78,7 @@ const ChildLogin = () => { setSubmit(false) switch(response.data.status_code){ case 200:{ - loginOK(response.data.params.id); + loginOK(response.data.params.id, response.data.params.expire); break; } case 400: set400Error(response.data.error_message); break; diff --git a/backend/resources/js/child/side.jsx b/backend/resources/js/child/side.jsx index 7ba91896..7263276e 100644 --- a/backend/resources/js/child/side.jsx +++ b/backend/resources/js/child/side.jsx @@ -1,5 +1,6 @@ -import React, { useState, useContext, useEffect } from 'react'; +import React, { useContext, useEffect } from 'react'; import { Link, useLocation } from 'react-router-dom'; +import { useCookies } from 'react-cookie'; import { HeaderContext } from '../context'; @@ -8,7 +9,7 @@ export default function ChildSide() { const {selected_item_sidebar, SetSelectedItemOfSidebar} = useContext(HeaderContext); const {pathname} = useLocation(); - + const [cookies, setCookie, removeCookie] = useCookies(['user']); useEffect(()=>{ SetSelectedItemOfSidebar(pathname.split('/')[2]); @@ -18,7 +19,7 @@ export default function ChildSide() { const handleLogout = () => { axios.get('/c-account/logout') .then(() => { - localStorage.removeItem('c-account_token'); + removeCookie('token', '/c-account'); window.location.href = '/c-account/login'; }) } diff --git a/backend/resources/js/component/check_login_status.jsx b/backend/resources/js/component/check_login_status.jsx index 1d32db8c..9cb63fc6 100644 --- a/backend/resources/js/component/check_login_status.jsx +++ b/backend/resources/js/component/check_login_status.jsx @@ -1,5 +1,6 @@ import { useEffect, useState } from "react"; import { useLocation, useNavigate } from "react-router-dom"; +import { useCookies } from 'react-cookie'; import Alert from './alert'; export default function CheckLoginStatus() { @@ -7,19 +8,22 @@ export default function CheckLoginStatus() { const [_success, setSuccess] = useState(''); const navigator = useNavigate(); + const [cookies, setCookie, removeCookie] = useCookies(['user']); + useEffect(() => { const acc_type = pathname.split('/')[1]; - let token = localStorage.getItem(`${acc_type}_token`); + console.log(cookies.token); + let token = cookies.token; + if(!token){ navigator(`/${acc_type}/login`); } else{ - token = JSON.parse(token); if(token.from_login) { setSuccess('ログインに成功しました'); token.from_login = false; - localStorage.setItem(`${acc_type}_token`, JSON.stringify(token)); + setCookie('token', token, `/${acc_type}`); } } }, [pathname]); diff --git a/backend/resources/js/parent/auth/login/index.jsx b/backend/resources/js/parent/auth/login/index.jsx index ba41ac89..7152a93b 100644 --- a/backend/resources/js/parent/auth/login/index.jsx +++ b/backend/resources/js/parent/auth/login/index.jsx @@ -1,6 +1,7 @@ import React, { useState, useRef, useEffect } from 'react'; import { Link, useLocation } from 'react-router-dom'; import { LoadingButton } from '@material-ui/lab'; +import { useCookies } from 'react-cookie'; import Alert from '../../../component/alert'; @@ -8,6 +9,7 @@ import Alert from '../../../component/alert'; const ParentLogin = () => { const location = useLocation(); + const [cookies, setCookie] = useCookies(['auth']); const [submit, setSubmit] = useState(false); @@ -28,14 +30,15 @@ const ParentLogin = () => { }, []); - const loginOK = (id) =>{ + const loginOK = (id, expires) =>{ let token = { type: 'p-account', id: id, notice: 0, from_login: true }; - localStorage.setItem('p-account_token', JSON.stringify(token)); + + setCookie('token', token, {expires: new Date(expires).toUTCString(), path: '/p-account'}); localStorage.setItem('father_id', id); if(location.search == '') @@ -61,7 +64,7 @@ const ParentLogin = () => { setSubmit(false) switch(response.data.status_code){ case 200:{ - loginOK(response.data.params.id); + loginOK(response.data.params.id, response.data.params.expire); break; } case 400: set400Error(response.data.error_message); break; diff --git a/backend/resources/js/parent/side.jsx b/backend/resources/js/parent/side.jsx index 9c1f7b1f..cd91df4c 100644 --- a/backend/resources/js/parent/side.jsx +++ b/backend/resources/js/parent/side.jsx @@ -1,13 +1,16 @@ -import React, { useState, useContext, useEffect } from 'react'; +import React, { useContext, useEffect } from 'react'; import { Link, useLocation } from 'react-router-dom'; +import { useCookies } from 'react-cookie'; import { HeaderContext } from '../context'; + export default function ParentSide() { const father_image = document.getElementById('father_image').value; const {selected_item_sidebar, SetSelectedItemOfSidebar} = useContext(HeaderContext); const {pathname} = useLocation(); + const [cookies, setCookie, removeCookie] = useCookies(['user']); useEffect(()=>{ @@ -18,7 +21,7 @@ export default function ParentSide() { const handleLogout = () => { axios.get('/p-account/logout') .then(() => { - localStorage.removeItem('p-account_token'); + removeCookie('token', '/p-account'); window.location.href = '/p-account/login'; }) }