From 9b4f1ba2029602b31990702c64a178aa95d2253a Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 6 Dec 2023 11:21:57 +0800 Subject: [PATCH] iamsmart web Login --- src/pages/iAmSmart/AuthCallback/index.js | 37 ++++++++++++-- src/pages/iAmSmart/FailCallback/index.js | 63 +++++++++++------------- src/routes/LoginRoutes.js | 4 +- 3 files changed, 63 insertions(+), 41 deletions(-) diff --git a/src/pages/iAmSmart/AuthCallback/index.js b/src/pages/iAmSmart/AuthCallback/index.js index cefa70e..790f0f0 100644 --- a/src/pages/iAmSmart/AuthCallback/index.js +++ b/src/pages/iAmSmart/AuthCallback/index.js @@ -3,6 +3,9 @@ import * as React from "react"; import * as HttpUtils from "utils/HttpUtils"; import * as UrlUtils from "utils/ApiPathConst"; import { useNavigate } from "react-router-dom"; +import { useDispatch } from "react-redux"; +import { handleLogoutFunction, handleLogin } from 'auth/index'; + import Loadable from 'components/Loadable'; const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); @@ -11,6 +14,7 @@ const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/Loa const Index = () => { + const dispatch = useDispatch() const navigate = useNavigate() React.useEffect(() => { @@ -18,6 +22,8 @@ const Index = () => { }, []); function getPrfile(){ + dispatch(handleLogoutFunction()); + let params = new URLSearchParams(window.location.search) if(params.get("code")){ HttpUtils.post({ @@ -26,15 +32,38 @@ const Index = () => { code: params.get("code") }, onSuccess: (responseData) => { - navigate('/iAmSmartRegisterFrom', { state: { responseData: responseData } }); + + //navigate('/iAmSmartRegisterFrom', { state: { responseData: responseData } }); + + console.log(response) + const userData = { + id: responseData.id, + fullenName: responseData.name, + fullchName: responseData.chName, + email: responseData.email, + type: responseData.type, + role: responseData.role, + abilities: responseData.abilities, + creditor: responseData.creditor, + //avatar: require('src/assets/images/users/avatar-3.png').default, + } + const data = { ...userData, accessToken: responseData.accessToken, refreshToken: responseData.refreshToken } + // setSuccess(true) + dispatch(handleLogin(data)) + navigate('/dashboard'); + location.reload() + + }, + onFail: ()=>{ + window.location.assign("/iamsmart/loginFall"); + }, + onError:()=>{ + window.location.assign("/iamsmart/loginFall"); } }); } } - - - return ( ); diff --git a/src/pages/iAmSmart/FailCallback/index.js b/src/pages/iAmSmart/FailCallback/index.js index e908b83..06527cd 100644 --- a/src/pages/iAmSmart/FailCallback/index.js +++ b/src/pages/iAmSmart/FailCallback/index.js @@ -2,28 +2,20 @@ import { Grid, Typography, - Stack, + Button } from '@mui/material'; import * as React from "react"; +import { useNavigate } from "react-router-dom"; import Loadable from 'components/Loadable'; const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); -import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' -const BackgroundHead = { - backgroundImage: `url(${titleBackgroundImg})`, - width: '100%', - height: '100%', - backgroundSize: 'contain', - backgroundRepeat: 'no-repeat', - backgroundColor: '#0C489E', - backgroundPosition: 'right' -} // ==============================|| DASHBOARD - DEFAULT ||============================== // const Index = () => { + const navigate = useNavigate() const [onReady, setOnReady] = React.useState(false); React.useEffect(() => { @@ -34,31 +26,32 @@ const Index = () => { !onReady ? : - - -
- - iAmSmart 登入失敗 - -
-
- {/*row 1*/} - - -
- - - - 連接 iAM Smart 時出現錯誤,請重試。 - - - -
+ + + + +
+ + + + 登入失敗,請重試。 + + + + +
+
-
- {/*row 2*/} -
- + {/*row 2*/} +
); }; diff --git a/src/routes/LoginRoutes.js b/src/routes/LoginRoutes.js index f3b857b..0b8a977 100644 --- a/src/routes/LoginRoutes.js +++ b/src/routes/LoginRoutes.js @@ -64,11 +64,11 @@ const LoginRoutes = { element: }, { - path: 'iamsmart/loginfallback', + path: 'iamsmart/loginFall', element: }, { - path: 'iamsmart/logincallback', + path: 'iamsmart/loginSucess', element: }, {