Se guarda token en sessionStorage

This commit is contained in:
Germán Enríquez 2023-12-26 15:15:21 -05:00
parent 98d848798c
commit 7fcab36f53
4 changed files with 440 additions and 422 deletions

839
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
{ {
"name": "@chimera-pe/react-saas", "name": "@chimera-pe/react-saas",
"version": "0.1.5", "version": "0.1.6",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",

View file

@ -1,6 +1,6 @@
import {useEffect} from "react"; import {useEffect} from "react";
import {useDispatch,useSelector} from "react-redux"; import {useDispatch,useSelector} from "react-redux";
import {logout, refreshToken} from "../redux"; import {logout,refreshToken} from "../redux";
const useCheckLogin = (devURL) => { const useCheckLogin = (devURL) => {
const dispatch = useDispatch(); const dispatch = useDispatch();
@ -21,4 +21,4 @@ const useCheckLogin = (devURL) => {
return login.autenticado; return login.autenticado;
}; };
export default useCheckLogin; export default useCheckLogin;

View file

@ -24,6 +24,9 @@ const loginSlice = createSlice({
state.usuario = null; state.usuario = null;
state.perfiles = []; state.perfiles = [];
state.error = null; state.error = null;
sessionStorage.removeItem("saas-token");
sessionStorage.removeItem("saas-refresh-token");
sessionStorage.removeItem("saas-expiration");
} }
}, },
extraReducers(builder) { extraReducers(builder) {
@ -44,6 +47,9 @@ const loginSlice = createSlice({
state.expiracion = expiracion.getTime(); state.expiracion = expiracion.getTime();
state.usuario = jwtToken.name; state.usuario = jwtToken.name;
state.perfiles = jwtToken.authorities; state.perfiles = jwtToken.authorities;
sessionStorage.setItem("saas-token",token);
sessionStorage.setItem("saas-refresh-token",action.payload.refresh_token);
sessionStorage.setItem("saas-expiration",expiracion.getTime());
}) })
.addCase(requestToken.rejected,(state,action) => { .addCase(requestToken.rejected,(state,action) => {
console.log(action); console.log(action);
@ -55,6 +61,9 @@ const loginSlice = createSlice({
state.usuario = null; state.usuario = null;
state.perfiles = []; state.perfiles = [];
state.error = action.error?.message; state.error = action.error?.message;
sessionStorage.removeItem("saas-token");
sessionStorage.removeItem("saas-refresh-token");
sessionStorage.removeItem("saas-expiration");
}) })
.addCase(refreshToken.pending,state => { .addCase(refreshToken.pending,state => {
state.cargando = true; state.cargando = true;
@ -65,6 +74,9 @@ const loginSlice = createSlice({
state.token = action.payload.access_token; state.token = action.payload.access_token;
state.refreshToken = action.payload.refresh_token; state.refreshToken = action.payload.refresh_token;
state.expiracion = expiracion.getTime(); state.expiracion = expiracion.getTime();
sessionStorage.setItem("saas-token",action.payload.access_token);
sessionStorage.setItem("saas-refresh-token",action.payload.refresh_token);
sessionStorage.setItem("saas-expiration",expiracion.getTime());
}) })
.addCase(refreshToken.rejected,(state,action) => { .addCase(refreshToken.rejected,(state,action) => {
state.cargando = false; state.cargando = false;
@ -75,6 +87,9 @@ const loginSlice = createSlice({
state.usuario = null; state.usuario = null;
state.perfiles = []; state.perfiles = [];
state.error = action.error?.message; state.error = action.error?.message;
sessionStorage.removeItem("saas-token");
sessionStorage.removeItem("saas-refresh-token");
sessionStorage.removeItem("saas-expiration");
}); });
} }
}); });
@ -97,4 +112,4 @@ export const getUsuario=state => state.login.usuario;
export const getPerfiles=state => state.login.perfiles; export const getPerfiles=state => state.login.perfiles;
export default loginSlice.reducer; export default loginSlice.reducer;