Merge Dev in Staging
This commit is contained in:
commit
13f8cfc97c
@ -17,7 +17,7 @@ export default function Login() {
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const error = router.query["error"];
|
const error = router.query["error"];
|
||||||
|
|
||||||
const [isErrorModalOpen, setIsErrorModalOpen] = useState(false);
|
const [isErrorModalOpen, setIsErrorModalOpen] = useState(0);
|
||||||
|
|
||||||
const redirectUserOnConnection = useCallback(() => {
|
const redirectUserOnConnection = useCallback(() => {
|
||||||
const variables = FrontendVariables.getInstance();
|
const variables = FrontendVariables.getInstance();
|
||||||
@ -28,16 +28,25 @@ export default function Login() {
|
|||||||
);
|
);
|
||||||
}, [router]);
|
}, [router]);
|
||||||
|
|
||||||
const openErrorModal = useCallback(() => {
|
const openErrorModal = useCallback((index: number) => {
|
||||||
setIsErrorModalOpen(true);
|
setIsErrorModalOpen(index);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const closeErrorModal = useCallback(() => {
|
const closeErrorModal = useCallback(() => {
|
||||||
setIsErrorModalOpen(false);
|
setIsErrorModalOpen(0);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (error === "1") openErrorModal();
|
switch (error) {
|
||||||
|
case "1":
|
||||||
|
openErrorModal(1);
|
||||||
|
break;
|
||||||
|
case "2":
|
||||||
|
openErrorModal(2);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}, [error, openErrorModal]);
|
}, [error, openErrorModal]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -58,7 +67,7 @@ export default function Login() {
|
|||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<Confirm
|
<Confirm
|
||||||
isOpen={isErrorModalOpen}
|
isOpen={isErrorModalOpen === 1}
|
||||||
onClose={closeErrorModal}
|
onClose={closeErrorModal}
|
||||||
showCancelButton={false}
|
showCancelButton={false}
|
||||||
onAccept={closeErrorModal}
|
onAccept={closeErrorModal}
|
||||||
@ -71,6 +80,20 @@ export default function Login() {
|
|||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
</Confirm>
|
</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>
|
</DefaultDoubleSidePage>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ import Loader from "@Front/Components/DesignSystem/Loader";
|
|||||||
import UserStore from "@Front/Stores/UserStore";
|
import UserStore from "@Front/Stores/UserStore";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import JwtService from "@Front/Services/JwtService/JwtService";
|
import JwtService from "@Front/Services/JwtService/JwtService";
|
||||||
|
import CookieService from "@Front/Services/CookieService/CookieService";
|
||||||
|
|
||||||
export default function LoginCallBack() {
|
export default function LoginCallBack() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
@ -20,10 +21,6 @@ export default function LoginCallBack() {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
async function getUser() {
|
async function getUser() {
|
||||||
const code = router.query["code"];
|
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) {
|
if (code) {
|
||||||
try {
|
try {
|
||||||
const token = await Auth.getInstance().getIdnotJwt(code as string);
|
const token = await Auth.getInstance().getIdnotJwt(code as string);
|
||||||
@ -35,7 +32,13 @@ export default function LoginCallBack() {
|
|||||||
return;
|
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();
|
getUser();
|
||||||
}),
|
}),
|
||||||
|
@ -13,6 +13,7 @@ import CustomerStore from "@Front/Stores/CustomerStore";
|
|||||||
import Module from "@Front/Config/Module";
|
import Module from "@Front/Config/Module";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import JwtService from "@Front/Services/JwtService/JwtService";
|
import JwtService from "@Front/Services/JwtService/JwtService";
|
||||||
|
import CookieService from "@Front/Services/CookieService/CookieService";
|
||||||
|
|
||||||
export default function LoginCallBackCustomer() {
|
export default function LoginCallBackCustomer() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
@ -20,10 +21,6 @@ export default function LoginCallBackCustomer() {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const getReport = async () => {
|
const getReport = async () => {
|
||||||
const tokenid360 = router.query["token"];
|
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) {
|
if (tokenid360) {
|
||||||
let token: ICustomerTokens | undefined;
|
let token: ICustomerTokens | undefined;
|
||||||
try {
|
try {
|
||||||
@ -36,7 +33,13 @@ export default function LoginCallBackCustomer() {
|
|||||||
CustomerStore.instance.connect(token.accessToken, token.refreshToken);
|
CustomerStore.instance.connect(token.accessToken, token.refreshToken);
|
||||||
router.push(Module.getInstance().get().modules.pages.Folder.pages.Select.props.path);
|
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();
|
getReport();
|
||||||
}),
|
}),
|
||||||
|
@ -35,6 +35,19 @@ export default class JwtService {
|
|||||||
return (this.instance ??= new this());
|
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 {
|
public decodeJwt(): IUserJwtPayload | undefined {
|
||||||
const accessToken = CookieService.getInstance().getCookie("leCoffreAccessToken");
|
const accessToken = CookieService.getInstance().getCookie("leCoffreAccessToken");
|
||||||
if (!accessToken) return;
|
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
|
* @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
|
* @throws {Error} If the name or the value is empty
|
||||||
*/
|
*/
|
||||||
public async refreshToken() {
|
public async refreshToken(refreshToken: string): Promise<boolean> {
|
||||||
const refreshToken = CookieService.getInstance().getCookie("leCoffreRefreshToken");
|
|
||||||
const variables = await FrontendVariables.getInstance();
|
|
||||||
if (!refreshToken) return false;
|
|
||||||
const userToken = jwt_decode(refreshToken) as IUserJwtPayload;
|
const userToken = jwt_decode(refreshToken) as IUserJwtPayload;
|
||||||
const customerToken = jwt_decode(refreshToken) as ICustomerJwtPayload;
|
const customerToken = jwt_decode(refreshToken) as ICustomerJwtPayload;
|
||||||
|
|
||||||
if (userToken?.exp && userToken.exp > Math.floor(Date.now() / 1000)) {
|
if (userToken?.exp && userToken.exp > Math.floor(Date.now() / 1000)) {
|
||||||
|
const variables = FrontendVariables.getInstance();
|
||||||
if (userToken?.userId) {
|
if (userToken?.userId) {
|
||||||
try {
|
try {
|
||||||
const headers = new Headers();
|
const headers = new Headers();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user