diff --git a/backend/public/js/index.js b/backend/public/js/index.js index 98826077..a25daf8f 100644 --- a/backend/public/js/index.js +++ b/backend/public/js/index.js @@ -27447,7 +27447,7 @@ var AdminLogin = function AdminLogin() { switch (response.data.status_code) { case 200: { - loginOK(); + loginOK(response.data.params.id); break; } @@ -27460,32 +27460,27 @@ var AdminLogin = function AdminLogin() { }; }, []); - var init_error = function init_error() { - set422Errors({ - email: null, - password: null - }); - set400Error(null); - }; - - var loginOK = function loginOK() { - var a_token = { + var loginOK = function loginOK(id) { + var admin_token = { type: 'admin', - id: response.data.params.id, + id: id, from_login: true }; - localStorage.setItem('a_token', JSON.stringify(a_token)); + localStorage.setItem('admin_token', JSON.stringify(admin_token)); if (location.search == '') window.location.href = "/admin/meeting";else window.location.href = location.search.replace('?redirect_to=', ''); }; var handleSubmit = function handleSubmit(e) { e.preventDefault(); + set422Errors({ + email: '', + password: '' + }); setSubmit(true); //show progressbar var formdata = new FormData(); formdata.append('email', email); formdata.append('password', password); - init_error(); axios.post('/api/admin/login', formdata).then(function (response) { if (isMountedRef.current) return; setSubmit(false); @@ -27493,7 +27488,7 @@ var AdminLogin = function AdminLogin() { switch (response.data.status_code) { case 200: { - loginOK(); + loginOK(response.data.params.id); break; } @@ -31006,7 +31001,7 @@ var ChildLogin = function ChildLogin() { switch (response.data.status_code) { case 200: { - loginOK(); + loginOK(response.data.params.id); break; } @@ -31020,13 +31015,14 @@ var ChildLogin = function ChildLogin() { }, []); var loginOK = function loginOK() { - var c_token = { + var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var c_account_token = { type: 'c-account', - id: response.data.params.id, + id: id, notice: 0, from_login: true }; - localStorage.setItem('c_token', JSON.stringify(c_token)); + localStorage.setItem('c_account_token', JSON.stringify(c_account_token)); if (location.search == '') window.location.href = "/c-account/meeting";else window.location.href = location.search.replace('?redirect_to=', ''); }; @@ -31048,7 +31044,7 @@ var ChildLogin = function ChildLogin() { switch (response.data.status_code) { case 200: { - loginOK(); + loginOK(response.data.params.id); break; } @@ -34763,7 +34759,6 @@ function AlertStateMessage() { pathname = _useLocation.pathname, state = _useLocation.state; - var location = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useLocation)(); var navigator = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), @@ -34776,10 +34771,78 @@ function AlertStateMessage() { setSuccess(state); navigator(pathname); } + }, [pathname]); + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, { + children: _success ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_alert__WEBPACK_IMPORTED_MODULE_1__["default"], { + type: "success", + hide: function hide() { + return setSuccess(''); + }, + children: _success + }) : null + }); +} - if (localStorage.getItem('kiki_login_flag')) { +/***/ }), + +/***/ "./resources/js/component/check_login_status.jsx": +/*!*******************************************************!*\ + !*** ./resources/js/component/check_login_status.jsx ***! + \*******************************************************/ +/***/ ((__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 */ CheckLoginStatus) +/* 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 _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(); } + +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; } + + + + + + +function CheckLoginStatus() { + var _useLocation = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useLocation)(), + pathname = _useLocation.pathname, + state = _useLocation.state; + + var location = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useLocation)(); + var navigator = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)(); + + var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), + _useState2 = _slicedToArray(_useState, 2), + _success = _useState2[0], + setSuccess = _useState2[1]; + + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { + var acc_type = pathname.split('/')[1]; + var token = JSON.parse(localStorage.getItem("".concat(acc_type, "_token"))); + + if (!token) { + //if the token is deleted by logout. + window.location.href = "/".concat(acc_type, "/login"); + localStorage.removeItem("".concat(acc_type, "_token")); + axios.get("/".concat(acc_type, "/logout")); + } else if (token.from_login) { setSuccess('ログインに成功しました'); - localStorage.removeItem('kiki_login_flag'); + token.from_login = false; + localStorage.setItem("".concat(acc_type, "_token"), JSON.stringify(token)); } }, [pathname]); return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, { @@ -36150,9 +36213,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router/index.js"); -/* harmony import */ var _component_alert_state_msg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../component/alert_state_msg */ "./resources/js/component/alert_state_msg.jsx"); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.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 _component_check_login_status__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../component/check_login_status */ "./resources/js/component/check_login_status.jsx"); +/* harmony import */ var _component_alert_state_msg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../component/alert_state_msg */ "./resources/js/component/alert_state_msg.jsx"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); + @@ -36160,9 +36225,9 @@ __webpack_require__.r(__webpack_exports__); var DashboardLayout = function DashboardLayout(_ref) { var side = _ref.side; - return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("main", { + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("main", { className: "l-container meeting-consent", - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_component_alert_state_msg__WEBPACK_IMPORTED_MODULE_0__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_router_dom__WEBPACK_IMPORTED_MODULE_2__.Outlet, {}), side] + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_component_alert_state_msg__WEBPACK_IMPORTED_MODULE_1__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_component_check_login_status__WEBPACK_IMPORTED_MODULE_0__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_router_dom__WEBPACK_IMPORTED_MODULE_3__.Outlet, {}), side] }); }; @@ -37480,7 +37545,7 @@ var ParentLogin = function ParentLogin() { switch (response.data.status_code) { case 200: { - loginOK(); + loginOK(response.data.params.id); break; } @@ -37493,14 +37558,14 @@ var ParentLogin = function ParentLogin() { }; }, []); - var loginOK = function loginOK() { - var p_token = { + var loginOK = function loginOK(id) { + var p_account_token = { type: 'p-account', - id: response.data.params.id, + id: id, notice: 0, from_login: true }; - localStorage.setItem('p_token', JSON.stringify(p_token)); + localStorage.setItem('p_account_token', JSON.stringify(p_account_token)); if (location.search == '') window.location.href = "/p-account/meeting";else window.location.href = location.search.replace('?redirect_to=', ''); }; @@ -37522,7 +37587,7 @@ var ParentLogin = function ParentLogin() { switch (response.data.status_code) { case 200: { - loginOK(); + loginOK(response.data.params.id); break; } diff --git a/backend/resources/js/admin/login/index.jsx b/backend/resources/js/admin/login/index.jsx index 65b2aada..ccbe72f0 100644 --- a/backend/resources/js/admin/login/index.jsx +++ b/backend/resources/js/admin/login/index.jsx @@ -27,7 +27,7 @@ const AdminLogin = () => { switch (response.data.status_code) { case 200: { - loginOK(); + loginOK(response.data.params.id); break; } default: break; @@ -39,19 +39,14 @@ const AdminLogin = () => { } }, []) - const init_error = () => { - set422Errors({ email:null, password:null }); - set400Error(null); - } - - const loginOK = () => { - let a_token = { + const loginOK = (id) => { + let admin_token = { type: 'admin', - id: response.data.params.id, + id: id, from_login: true }; - localStorage.setItem('a_token', JSON.stringify(a_token)); + localStorage.setItem('admin_token', JSON.stringify(admin_token)); if(location.search == '') window.location.href = "/admin/meeting"; @@ -62,20 +57,20 @@ const AdminLogin = () => { const handleSubmit = (e) => { e.preventDefault(); + + set422Errors({ email:'', password:'' }); setSubmit(true); //show progressbar const formdata = new FormData(); formdata.append('email', email); formdata.append('password', password); - init_error(); - axios.post('/api/admin/login', formdata) .then(response => { if(isMountedRef.current) return; setSubmit(false) switch(response.data.status_code){ case 200: { - loginOK(); + loginOK(response.data.params.id); break; } case 422: { diff --git a/backend/resources/js/child/auth/login/index.jsx b/backend/resources/js/child/auth/login/index.jsx index e3a92b92..5649f855 100644 --- a/backend/resources/js/child/auth/login/index.jsx +++ b/backend/resources/js/child/auth/login/index.jsx @@ -26,7 +26,7 @@ const ChildLogin = () => { switch (response.data.status_code) { case 200: { - loginOK(); + loginOK(response.data.params.id); break; } default: break; @@ -39,14 +39,14 @@ const ChildLogin = () => { }, []) - const loginOK = () =>{ - let c_token = { + const loginOK = (id = 0) =>{ + let c_account_token = { type: 'c-account', - id: response.data.params.id, + id: id, notice: 0, from_login: true }; - localStorage.setItem('c_token', JSON.stringify(c_token)); + localStorage.setItem('c_account_token', JSON.stringify(c_account_token)); if(location.search == '') window.location.href = "/c-account/meeting"; @@ -71,7 +71,7 @@ const ChildLogin = () => { setSubmit(false) switch(response.data.status_code){ case 200:{ - loginOK(); + loginOK(response.data.params.id); break; } case 400: set400Error(response.data.error_message); break; diff --git a/backend/resources/js/component/alert_state_msg.jsx b/backend/resources/js/component/alert_state_msg.jsx index d569ddb5..44f4f93f 100644 --- a/backend/resources/js/component/alert_state_msg.jsx +++ b/backend/resources/js/component/alert_state_msg.jsx @@ -1,10 +1,9 @@ import { useEffect, useState } from "react"; -import { useLocation, useNavigate } from "react-router-dom"; +import { useNavigate, useLocation } from "react-router-dom"; import Alert from './alert'; export default function AlertStateMessage() { const { pathname, state } = useLocation(); - const location = useLocation(); const navigator = useNavigate(); const [_success, setSuccess] = useState(''); @@ -13,10 +12,6 @@ export default function AlertStateMessage() { setSuccess(state); navigator(pathname); } - if(localStorage.getItem('kiki_login_flag')) { - setSuccess('ログインに成功しました'); - localStorage.removeItem('kiki_login_flag'); - } }, [pathname]); return ( diff --git a/backend/resources/js/component/check_login_status.jsx b/backend/resources/js/component/check_login_status.jsx new file mode 100644 index 00000000..42507a9a --- /dev/null +++ b/backend/resources/js/component/check_login_status.jsx @@ -0,0 +1,32 @@ +import { useEffect, useState } from "react"; +import { useLocation, useNavigate } from "react-router-dom"; +import Alert from './alert'; + +export default function CheckLoginStatus() { + const { pathname, state } = useLocation(); + const location = useLocation(); + const navigator = useNavigate(); + const [_success, setSuccess] = useState(''); + + useEffect(() => { + const acc_type = pathname.split('/')[1]; + const token = JSON.parse(localStorage.getItem(`${acc_type}_token`)); + + if(!token){ //if the token is deleted by logout. + window.location.href = `/${acc_type}/login`; + localStorage.removeItem(`${acc_type}_token`); + axios.get(`/${acc_type}/logout`); + } + else if(token.from_login) { + setSuccess('ログインに成功しました'); + token.from_login = false; + localStorage.setItem(`${acc_type}_token`, JSON.stringify(token)); + } + }, [pathname]); + + return ( + <> + { _success ? setSuccess('')}>{ _success } : null} + + ); +} diff --git a/backend/resources/js/layout/DashboardLayout.js b/backend/resources/js/layout/DashboardLayout.js index 50002b50..5d9b353e 100644 --- a/backend/resources/js/layout/DashboardLayout.js +++ b/backend/resources/js/layout/DashboardLayout.js @@ -1,11 +1,13 @@ import { Outlet } from 'react-router-dom'; +import CheckLoginStatus from '../component/check_login_status'; import AlertStateMessage from '../component/alert_state_msg'; const DashboardLayout = ({side}) => { return (
- + + {side}
diff --git a/backend/resources/js/parent/auth/login/index.jsx b/backend/resources/js/parent/auth/login/index.jsx index 3118aa22..d5133b88 100644 --- a/backend/resources/js/parent/auth/login/index.jsx +++ b/backend/resources/js/parent/auth/login/index.jsx @@ -28,7 +28,7 @@ const ParentLogin = () => { switch (response.data.status_code) { case 200: { - loginOK(); + loginOK(response.data.params.id); break; } default: break; @@ -41,14 +41,14 @@ const ParentLogin = () => { }, []); - const loginOK = () =>{ - let p_token = { + const loginOK = (id) =>{ + let p_account_token = { type: 'p-account', - id: response.data.params.id, + id: id, notice: 0, from_login: true }; - localStorage.setItem('p_token', JSON.stringify(p_token)); + localStorage.setItem('p_account_token', JSON.stringify(p_account_token)); if(location.search == '') window.location.href = "/p-account/meeting"; @@ -73,7 +73,7 @@ const ParentLogin = () => { setSubmit(false) switch(response.data.status_code){ case 200:{ - loginOK(); + loginOK(response.data.params.id); break; } case 400: set400Error(response.data.error_message); break;