Sfoglia il codice sorgente

eliminar token after token exp time

amenpunk 3 anni fa
parent
commit
6550f36ee9
2 ha cambiato i file con 27 aggiunte e 11 eliminazioni
  1. 18 2
      src/Components/Dashboard.js
  2. 9 9
      src/Pages/Logincs.jsx

+ 18 - 2
src/Components/Dashboard.js

@@ -13,6 +13,7 @@ import {
   KeyboardDoubleArrowLeft as LeftKey,
   Notifications as NotificationsIcon,
 } from '@mui/icons-material'
+import jwt_decode from "jwt-decode";
 
 import Logo from '../Images/evaluacion.jpeg';
 import { stringAvatar } from '../Utils/avatar'
@@ -84,7 +85,7 @@ function DashboardContent() {
   const dispatch = useDispatch();
   const navigate = useNavigate()
   const profile = useSelector((state) => state.recluter.info)
-  console.log('PROFILE: ', profile)
+  const auth = useSelector((state) => state.token.token)
 
   const CerrarSession = () => {
     //TODO:
@@ -105,7 +106,22 @@ function DashboardContent() {
     }
   }
   const [anchorElMovil, setAnchorElMov] = React.useState(false);
-  React.useEffect(() => isMovil ? setOpen(false) : null, [isMovil])
+
+  React.useEffect(() => { 
+    if(isMovil){
+      setOpen(false)
+    }
+
+    const token = auth
+    const { exp } = jwt_decode(token);
+    let timestamp = exp * 1000;
+    let exp_in = timestamp - Date.now();
+    console.log("EXP IN : ", exp_in)
+    if(exp_in <= 0 ){
+      alert("TOKEN EXPIRADO, PORFAVOR INICIA SESSION")
+      dispatch(removeToken())
+    }
+  }, [isMovil,auth, dispatch])
 
   return (
     <ThemeProvider theme={mdTheme}>

+ 9 - 9
src/Pages/Logincs.jsx

@@ -41,11 +41,11 @@ export function LoginCs() {
   const dispatch = useDispatch();
   const handleClose = () => false
   const navigate = useNavigate();
-  let auth = useSelector((state) => state.token.candi)
+  const auth = useSelector((state) => state.token.candi)
 
   React.useEffect(() => {
     if(auth){
-      let body_token = jwt_decode(auth.token);
+      const body_token = jwt_decode(auth.token);
       if(body_token.authorities.includes("Candidato")){
         navigate('/user/home')
       }
@@ -59,13 +59,13 @@ export function LoginCs() {
       password: '',
     },
     validationSchema: LoginSchema,
-    onSubmit: async (values) => {
+    onSubmit: (values) => {
 
-      let { email, password } = values
+      const { email, password } = values
       setOpen(true)
 
-      let url = `/user?user=${email}&password=${password}&typeusr=iscandidato`
-      let request = new Service(url);
+      const url = `/user?user=${email}&password=${password}&typeusr=iscandidato`
+      const request = new Service(url);
       request
         .post({})
         .then(response => {
@@ -74,13 +74,13 @@ export function LoginCs() {
           let { token, nombre, apelidos, idcontrasenia : pass_id, idSueperContrasenia } = response;
           toast.success(`Bienvenido ${nombre} ${apelidos}!!`)
           token = token.replace("Bearer ", "")
-          let { exp } = jwt_decode(token);
-          let body_token = jwt_decode(token);
+          const { exp } = jwt_decode(token);
+          const body_token = jwt_decode(token);
           console.log('body_toke: ', body_token)
           body_token['pass'] = password;
           body_token['passid'] = pass_id;
 
-          let timestamp = exp * 1000;
+          const timestamp = exp * 1000;
           let exp_in = timestamp - Date.now();
           let profile = {
             email,