source: jobvista-frontend/src/redux/reducers/authReducer.js@ d8b6c91

main
Last change on this file since d8b6c91 was d8b6c91, checked in by 223021 <daniel.ilievski.2@…>, 7 weeks ago

Initial commit - implementirano registracija i logiranje so Spring Security i JSON Web Token-i vo backend-ot kako i navbar i formi za istoto vo frontend-ot

  • Property mode set to 100644
File size: 2.2 KB
Line 
1import { createSlice } from '@reduxjs/toolkit';
2import { AUTH_TOKEN } from "../../axios/axiosInstance";
3import {isExpired} from "react-jwt";
4import {CURRENT_USER, SIGN_IN, SIGN_OUT, UPDATE_TOKEN} from "../actionTypes";
5
6const initialState = {
7 currentUser: "",
8 token: ""
9};
10
11const AuthReducer = (state = initialState, action) => {
12 switch (action.type) {
13 case SIGN_IN:
14 localStorage.setItem(AUTH_TOKEN, action.payload.token);
15 localStorage.setItem(CURRENT_USER, JSON.stringify(action.payload.user));
16 return {
17 ...state,
18 currentUser: action.payload.user,
19 token: action.payload.token
20 };
21 case UPDATE_TOKEN:
22 let token = action.payload;
23 let currentUser = null
24 if(!isExpired(token)) {
25 localStorage.setItem(AUTH_TOKEN, token);
26 currentUser = JSON.parse(localStorage.getItem(CURRENT_USER));
27 } else {
28 localStorage.removeItem(CURRENT_USER);
29 localStorage.removeItem(AUTH_TOKEN);
30 currentUser = "";
31 token = "";
32 }
33 return {
34 ...state,
35 currentUser: currentUser,
36 token: token
37 };
38 case SIGN_OUT:
39 console.log("BRISAM")
40 localStorage.removeItem(CURRENT_USER);
41 localStorage.removeItem(AUTH_TOKEN);
42 return {
43 ...state,
44 currentUser: null,
45 token: null
46 }
47
48 default:
49 return {
50 ...state,
51 };
52 }
53}
54export default AuthReducer
55
56//naredna prilika :(
57// const authSlice = createSlice({
58// name: 'auth',
59// initialState,
60// reducers: {
61// signIn: (state, action) => {
62// console.log("stigam tuka")
63// const { token, user } = action.payload;
64// localStorage.setItem(AUTH_TOKEN, token);
65// localStorage.setItem("CURRENT_USER", JSON.stringify(user));
66// state.currentUser = user;
67// state.token = token;
68// },
69// }
70// });
71//
72// //export const { signIn, signOut } = authSlice.actions;
73// export default authSlice.reducer;
Note: See TracBrowser for help on using the repository browser.