refacto error messages
This commit is contained in:
parent
6023cf8b1d
commit
e4b1379c12
@ -17,7 +17,7 @@ export default function Login() {
|
||||
const router = useRouter();
|
||||
const error = router.query["error"];
|
||||
|
||||
const [isErrorModalOpen, setIsErrorModalOpen] = useState(false);
|
||||
const [isErrorModalOpen, setIsErrorModalOpen] = useState(0);
|
||||
|
||||
const redirectUserOnConnection = useCallback(() => {
|
||||
const variables = FrontendVariables.getInstance();
|
||||
@ -28,16 +28,25 @@ export default function Login() {
|
||||
);
|
||||
}, [router]);
|
||||
|
||||
const openErrorModal = useCallback(() => {
|
||||
setIsErrorModalOpen(true);
|
||||
const openErrorModal = useCallback((index: number) => {
|
||||
setIsErrorModalOpen(index);
|
||||
}, []);
|
||||
|
||||
const closeErrorModal = useCallback(() => {
|
||||
setIsErrorModalOpen(false);
|
||||
setIsErrorModalOpen(0);
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (error === "1") openErrorModal();
|
||||
switch (error) {
|
||||
case "1":
|
||||
openErrorModal(1);
|
||||
break;
|
||||
case "2":
|
||||
openErrorModal(2);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}, [error, openErrorModal]);
|
||||
|
||||
return (
|
||||
@ -58,7 +67,7 @@ export default function Login() {
|
||||
</Link>
|
||||
</div>
|
||||
<Confirm
|
||||
isOpen={isErrorModalOpen}
|
||||
isOpen={isErrorModalOpen === 1}
|
||||
onClose={closeErrorModal}
|
||||
showCancelButton={false}
|
||||
onAccept={closeErrorModal}
|
||||
@ -71,6 +80,20 @@ export default function Login() {
|
||||
</Typography>
|
||||
</div>
|
||||
</Confirm>
|
||||
<Confirm
|
||||
isOpen={isErrorModalOpen === 2}
|
||||
onClose={closeErrorModal}
|
||||
showCancelButton={false}
|
||||
onAccept={closeErrorModal}
|
||||
closeBtn
|
||||
header={"Session expirée"}
|
||||
confirmText={"OK"}>
|
||||
<div className={classes["modal-content"]}>
|
||||
<Typography typo={ITypo.P_16} className={classes["text"]}>
|
||||
Veuillez vous reconnecter.
|
||||
</Typography>
|
||||
</div>
|
||||
</Confirm>
|
||||
</DefaultDoubleSidePage>
|
||||
);
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ import Loader from "@Front/Components/DesignSystem/Loader";
|
||||
import UserStore from "@Front/Stores/UserStore";
|
||||
import Link from "next/link";
|
||||
import JwtService from "@Front/Services/JwtService/JwtService";
|
||||
import CookieService from "@Front/Services/CookieService/CookieService";
|
||||
|
||||
export default function LoginCallBack() {
|
||||
const router = useRouter();
|
||||
@ -20,10 +21,6 @@ export default function LoginCallBack() {
|
||||
useEffect(() => {
|
||||
async function getUser() {
|
||||
const code = router.query["code"];
|
||||
const refreshedTokens = await JwtService.getInstance().refreshToken();
|
||||
if (refreshedTokens) {
|
||||
return router.push(Module.getInstance().get().modules.pages.Folder.props.path);
|
||||
}
|
||||
if (code) {
|
||||
try {
|
||||
const token = await Auth.getInstance().getIdnotJwt(code as string);
|
||||
@ -35,7 +32,13 @@ export default function LoginCallBack() {
|
||||
return;
|
||||
}
|
||||
}
|
||||
return router.push(Module.getInstance().get().modules.pages.Login.props.path + "?error=1");
|
||||
const refreshToken = CookieService.getInstance().getCookie("leCoffreRefreshToken");
|
||||
if(!refreshToken) return router.push(Module.getInstance().get().modules.pages.Login.props.path + "?error=1");
|
||||
const isTokenRefreshed = await JwtService.getInstance().refreshToken(refreshToken);
|
||||
if (isTokenRefreshed) {
|
||||
return router.push(Module.getInstance().get().modules.pages.Folder.props.path);
|
||||
}
|
||||
return router.push(Module.getInstance().get().modules.pages.Login.props.path + "?error=2");
|
||||
}
|
||||
getUser();
|
||||
}),
|
||||
|
@ -13,6 +13,7 @@ import CustomerStore from "@Front/Stores/CustomerStore";
|
||||
import Module from "@Front/Config/Module";
|
||||
import Link from "next/link";
|
||||
import JwtService from "@Front/Services/JwtService/JwtService";
|
||||
import CookieService from "@Front/Services/CookieService/CookieService";
|
||||
|
||||
export default function LoginCallBackCustomer() {
|
||||
const router = useRouter();
|
||||
@ -20,10 +21,6 @@ export default function LoginCallBackCustomer() {
|
||||
useEffect(() => {
|
||||
const getReport = async () => {
|
||||
const tokenid360 = router.query["token"];
|
||||
const refreshedTokens = await JwtService.getInstance().refreshToken();
|
||||
if (refreshedTokens) {
|
||||
return router.push(Module.getInstance().get().modules.pages.Folder.pages.Select.props.path);
|
||||
}
|
||||
if (tokenid360) {
|
||||
let token: ICustomerTokens | undefined;
|
||||
try {
|
||||
@ -36,7 +33,13 @@ export default function LoginCallBackCustomer() {
|
||||
CustomerStore.instance.connect(token.accessToken, token.refreshToken);
|
||||
router.push(Module.getInstance().get().modules.pages.Folder.pages.Select.props.path);
|
||||
}
|
||||
return router.push(Module.getInstance().get().modules.pages.CustomersLogin.props.path + "?error=1");
|
||||
const refreshToken = CookieService.getInstance().getCookie("leCoffreRefreshToken");
|
||||
if(!refreshToken) return router.push(Module.getInstance().get().modules.pages.Login.props.path + "?error=1");
|
||||
const isTokenRefreshed = await JwtService.getInstance().refreshToken(refreshToken);
|
||||
if (isTokenRefreshed) {
|
||||
return router.push(Module.getInstance().get().modules.pages.Folder.pages.Select.props.path);
|
||||
}
|
||||
return router.push(Module.getInstance().get().modules.pages.Login.props.path + "?error=2");
|
||||
};
|
||||
getReport();
|
||||
}),
|
||||
|
@ -35,6 +35,19 @@ export default class JwtService {
|
||||
return (this.instance ??= new this());
|
||||
}
|
||||
|
||||
public getUserJwtPayload(): IUserJwtPayload | undefined {
|
||||
const accessToken = CookieService.getInstance().getCookie("leCoffreAccessToken");
|
||||
if (!accessToken) return;
|
||||
return jwt_decode(accessToken);
|
||||
}
|
||||
|
||||
public getCustomerJwtPayload(): ICustomerJwtPayload | undefined {
|
||||
const accessToken = CookieService.getInstance().getCookie("leCoffreAccessToken");
|
||||
if (!accessToken) return;
|
||||
return jwt_decode(accessToken);
|
||||
}
|
||||
|
||||
|
||||
public decodeJwt(): IUserJwtPayload | undefined {
|
||||
const accessToken = CookieService.getInstance().getCookie("leCoffreAccessToken");
|
||||
if (!accessToken) return;
|
||||
@ -51,14 +64,12 @@ export default class JwtService {
|
||||
* @description : set a cookie with a name and a value that expire in 7 days
|
||||
* @throws {Error} If the name or the value is empty
|
||||
*/
|
||||
public async refreshToken() {
|
||||
const refreshToken = CookieService.getInstance().getCookie("leCoffreRefreshToken");
|
||||
const variables = await FrontendVariables.getInstance();
|
||||
if (!refreshToken) return false;
|
||||
public async refreshToken(refreshToken: string): Promise<boolean> {
|
||||
const userToken = jwt_decode(refreshToken) as IUserJwtPayload;
|
||||
const customerToken = jwt_decode(refreshToken) as ICustomerJwtPayload;
|
||||
|
||||
if (userToken?.exp && userToken.exp > Math.floor(Date.now() / 1000)) {
|
||||
const variables = FrontendVariables.getInstance();
|
||||
if (userToken?.userId) {
|
||||
try {
|
||||
const headers = new Headers();
|
||||
|
Loading…
x
Reference in New Issue
Block a user