fix reload login/logout et expiration cookies
This commit is contained in:
@@ -14,46 +14,46 @@ import Formulaire from "../pages/Formulaire";
|
||||
import MyInvoices from "../pages/MyInvoices";
|
||||
import { useState, useEffect } from "react";
|
||||
import React from 'react';
|
||||
import { useCookies } from 'react-cookie';
|
||||
import Invoices from "../pages/Invoices";
|
||||
import Cookies from "universal-cookie";
|
||||
|
||||
const App = () => {
|
||||
const [cookies, setCookie] = useCookies(['name']);
|
||||
const cookies = new Cookies();
|
||||
|
||||
useEffect(() => {
|
||||
async function FetchUser() {
|
||||
const response = await fetch(`https://localhost:7292/api/WhoAmI`, { credentials: 'include' });
|
||||
if (response.status === 200) {
|
||||
var user = await response.json();
|
||||
setCookie('GMGM', {...user, LoggedIn:true}, { path: '/', SameSite:'strict', secure:true })
|
||||
}
|
||||
else setCookie('GMGM', {LoggedIn:false}, { path: '/', SameSite:'strict', secure:true })
|
||||
const response = await fetch(`https://localhost:7292/api/WhoAmI`, { credentials: 'include' });
|
||||
if (response.status === 200) {
|
||||
var user = await response.json();
|
||||
cookies.set('GMGM', { ...user, LoggedIn: true }, { path: '/', SameSite: 'strict', secure: true, maxAge: 2592000 })
|
||||
}
|
||||
else cookies.set('GMGM', { LoggedIn: false }, { path: '/', SameSite: 'strict', secure: true, maxAge: 2592000 })
|
||||
}
|
||||
if (cookies.GMGM === null) {
|
||||
FetchUser();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return (
|
||||
<BrowserRouter>
|
||||
<Routes>
|
||||
<Route path="/" element={<Layout />}>
|
||||
<Route index element={<Home />} />
|
||||
<Route path="morceaux" element={<Morceaux/>} />
|
||||
<Route path="aboutUs" element={<AboutUs/>} />
|
||||
<Route path="contactUs" element={<ContactUs/>}/>
|
||||
<Route path="privacy" element={<Privacy/>}/>
|
||||
<Route path="morceaux/:id" element={<MorceauDetail/>}/>
|
||||
<Route path="inventaire" element={<Inventaire/>}/>
|
||||
<Route path="login" element={<Login/>}/>
|
||||
<Route path="logout" element={<Logout/>}/>
|
||||
<Route path="register" element={<Register/>}/>
|
||||
<Route path="formulaire" element={<Formulaire/>}/>
|
||||
<Route path="myinvoices" element={<MyInvoices/>}/>
|
||||
<Route path="invoices" element={<Invoices/>}/>
|
||||
</Route>
|
||||
</Routes>
|
||||
</BrowserRouter>
|
||||
<BrowserRouter>
|
||||
<Routes>
|
||||
<Route path="/" element={<Layout />}>
|
||||
<Route index element={<Home />} />
|
||||
<Route path="morceaux" element={<Morceaux />} />
|
||||
<Route path="aboutUs" element={<AboutUs />} />
|
||||
<Route path="contactUs" element={<ContactUs />} />
|
||||
<Route path="privacy" element={<Privacy />} />
|
||||
<Route path="morceaux/:id" element={<MorceauDetail />} />
|
||||
<Route path="inventaire" element={<Inventaire />} />
|
||||
<Route path="login" element={<Login />} />
|
||||
<Route path="logout" element={<Logout />} />
|
||||
<Route path="register" element={<Register />} />
|
||||
<Route path="formulaire" element={<Formulaire />} />
|
||||
<Route path="myinvoices" element={<MyInvoices />} />
|
||||
<Route path="invoices" element={<Invoices />} />
|
||||
</Route>
|
||||
</Routes>
|
||||
</BrowserRouter>
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useEffect } from "react";
|
||||
import { createContext, useState } from "react";
|
||||
import { useCookies } from "react-cookie";
|
||||
|
||||
export const CartContext = createContext({
|
||||
items: [],
|
||||
@@ -14,9 +14,12 @@ export const CartContext = createContext({
|
||||
|
||||
export function CartProvider({ children }) {
|
||||
|
||||
const [cartCookie, setCartCookie] = useCookies(['cart'])
|
||||
const [cartProducts, setCartProducts] = useState([]);
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
}, []);
|
||||
|
||||
function addToCart(product, qty) {
|
||||
|
||||
setCartProducts([...cartProducts, { ...product, quantity: parseFloat(qty), remaining: parseFloat(product.quantity) }]);
|
||||
|
||||
@@ -57,7 +57,7 @@ const Topbar = () => {
|
||||
</Link>
|
||||
{(user === null || user.LoggedIn === false) &&
|
||||
<Link className="nav-link" to="/login" >
|
||||
Connexion
|
||||
<b>Connexion</b>
|
||||
</Link>
|
||||
}
|
||||
{(user === null || user.LoggedIn === false) &&
|
||||
@@ -87,9 +87,9 @@ const Topbar = () => {
|
||||
</Link>
|
||||
</Dropdown.Item>
|
||||
<Dropdown.Item>
|
||||
<Button className="nav-link" onClick={() => logOut()}>
|
||||
Déconnexion
|
||||
</Button>
|
||||
<Link className="nav-link" to="/logout">
|
||||
<b>Déconnexion</b>
|
||||
</Link>
|
||||
</Dropdown.Item>
|
||||
{user.role === "Administrateur" &&
|
||||
<Container>
|
||||
|
||||
Reference in New Issue
Block a user