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;