@@ -3,6 +3,9 @@ import * as React from "react"; | |||||
import * as HttpUtils from "utils/HttpUtils"; | import * as HttpUtils from "utils/HttpUtils"; | ||||
import * as UrlUtils from "utils/ApiPathConst"; | import * as UrlUtils from "utils/ApiPathConst"; | ||||
import { useNavigate } from "react-router-dom"; | import { useNavigate } from "react-router-dom"; | ||||
import { useDispatch } from "react-redux"; | |||||
import { handleLogoutFunction, handleLogin } from 'auth/index'; | |||||
import Loadable from 'components/Loadable'; | import Loadable from 'components/Loadable'; | ||||
const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); | 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 Index = () => { | ||||
const dispatch = useDispatch() | |||||
const navigate = useNavigate() | const navigate = useNavigate() | ||||
React.useEffect(() => { | React.useEffect(() => { | ||||
@@ -18,6 +22,8 @@ const Index = () => { | |||||
}, []); | }, []); | ||||
function getPrfile(){ | function getPrfile(){ | ||||
dispatch(handleLogoutFunction()); | |||||
let params = new URLSearchParams(window.location.search) | let params = new URLSearchParams(window.location.search) | ||||
if(params.get("code")){ | if(params.get("code")){ | ||||
HttpUtils.post({ | HttpUtils.post({ | ||||
@@ -26,15 +32,38 @@ const Index = () => { | |||||
code: params.get("code") | code: params.get("code") | ||||
}, | }, | ||||
onSuccess: (responseData) => { | 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 ( | return ( | ||||
<LoadingComponent /> | <LoadingComponent /> | ||||
); | ); | ||||
@@ -2,28 +2,20 @@ | |||||
import { | import { | ||||
Grid, | Grid, | ||||
Typography, | Typography, | ||||
Stack, | |||||
Button | |||||
} from '@mui/material'; | } from '@mui/material'; | ||||
import * as React from "react"; | import * as React from "react"; | ||||
import { useNavigate } from "react-router-dom"; | |||||
import Loadable from 'components/Loadable'; | import Loadable from 'components/Loadable'; | ||||
const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); | 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 ||============================== // | // ==============================|| DASHBOARD - DEFAULT ||============================== // | ||||
const Index = () => { | const Index = () => { | ||||
const navigate = useNavigate() | |||||
const [onReady, setOnReady] = React.useState(false); | const [onReady, setOnReady] = React.useState(false); | ||||
React.useEffect(() => { | React.useEffect(() => { | ||||
@@ -34,31 +26,32 @@ const Index = () => { | |||||
!onReady ? | !onReady ? | ||||
<LoadingComponent /> | <LoadingComponent /> | ||||
: | : | ||||
<Grid container sx={{ minHeight: '110vh', backgroundColor: '#fff' }} direction="column" justifyContent="flex-start" alignItems="center" > | |||||
<Grid item xs={12} width="100%"> | |||||
<div style={BackgroundHead} width="100%"> | |||||
<Stack direction="row" height='70px'> | |||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>iAmSmart 登入失敗</Typography> | |||||
</Stack> | |||||
</div> | |||||
</Grid> | |||||
{/*row 1*/} | |||||
<Grid item xs={12} md={12} > | |||||
<Grid container justifyContent="flex-start" alignItems="center" > | |||||
<center> | |||||
<Grid item xs={12} md={12} > | |||||
<Typography variant="h3" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "center" }}> | |||||
連接 iAM Smart 時出現錯誤,請重試。 | |||||
</Typography> | |||||
</Grid> | |||||
</center> | |||||
<Grid container sx={{ height: '100%', backgroundColor: '#fff' }} direction="column" justifyContent="flex-start" alignItems="center" > | |||||
<Grid item xs={12} md={12} > | |||||
<Grid container justifyContent="flex-start" alignItems="center" > | |||||
<center> | |||||
<Grid item xs={12} md={12} > | |||||
<Typography variant="h3" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "center" }}> | |||||
登入失敗,請重試。 | |||||
</Typography> | |||||
<Button | |||||
component="span" | |||||
variant="contained" | |||||
size="large" | |||||
sx={{ m: 4 }} | |||||
onClick={() => { | |||||
navigate("/login"); | |||||
}} | |||||
>返回登入</Button> | |||||
</Grid> | |||||
</center> | |||||
</Grid> | |||||
</Grid> | </Grid> | ||||
</Grid> | |||||
{/*row 2*/} | |||||
</Grid > | |||||
{/*row 2*/} | |||||
</Grid > | |||||
); | ); | ||||
}; | }; | ||||
@@ -64,11 +64,11 @@ const LoginRoutes = { | |||||
element: <IAmSmart_RegistryCallback/> | element: <IAmSmart_RegistryCallback/> | ||||
}, | }, | ||||
{ | { | ||||
path: 'iamsmart/loginfallback', | |||||
path: 'iamsmart/loginFall', | |||||
element: <IAmSmart_FailCallback/> | element: <IAmSmart_FailCallback/> | ||||
}, | }, | ||||
{ | { | ||||
path: 'iamsmart/logincallback', | |||||
path: 'iamsmart/loginSucess', | |||||
element: <IAmSmart_SuccessCallback/> | element: <IAmSmart_SuccessCallback/> | ||||
}, | }, | ||||
{ | { | ||||