login
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
import { USER_LOADED, USER_LOADING, AUTH_ERROR, LOGIN_SUCCESS, LOGIN_FAIL, LOGOUT_SUCCESS, LOGOUT_FAIL, REFRESH_TOKEN_SUCCESS } from '../actions/types';
|
||||
|
||||
|
||||
const initialState = {
|
||||
token: localStorage.getItem('token'),
|
||||
refreshToken: localStorage.getItem('refreshToken'),
|
||||
isAuthenticated: null,
|
||||
progress: false,
|
||||
user: null
|
||||
};
|
||||
|
||||
export default function(state = initialState, action){
|
||||
switch(action.type){
|
||||
case USER_LOADING:
|
||||
return {
|
||||
...state,
|
||||
progress: true
|
||||
};
|
||||
case USER_LOADED:
|
||||
return {
|
||||
...state,
|
||||
isAuthenticated: true,
|
||||
progress: false,
|
||||
user: action.payload
|
||||
};
|
||||
case LOGIN_SUCCESS:
|
||||
case REFRESH_TOKEN_SUCCESS:
|
||||
localStorage.setItem('token', action.payload.token);
|
||||
localStorage.setItem('refreshToken', action.payload.refreshToken);
|
||||
console.log(action.payload);
|
||||
return {
|
||||
...state,
|
||||
user: action.payload.data.user,
|
||||
token: action.payload.token,
|
||||
refreshToken: action.payload.refreshToken,
|
||||
isAuthenticated: true,
|
||||
progress: false
|
||||
};
|
||||
case AUTH_ERROR:
|
||||
case LOGIN_FAIL:
|
||||
case LOGOUT_SUCCESS:
|
||||
case LOGOUT_FAIL:
|
||||
localStorage.removeItem('token');
|
||||
localStorage.removeItem('refreshToken');
|
||||
return {
|
||||
...state,
|
||||
token: null,
|
||||
refreshToken: null,
|
||||
user: null,
|
||||
isAuthenticated: false,
|
||||
progress: false
|
||||
};
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
}
|
||||
@@ -5,8 +5,10 @@ import tutorialBuilderReducer from './tutorialBuilderReducer';
|
||||
import generalReducer from './generalReducer';
|
||||
import projectReducer from './projectReducer';
|
||||
import messageReducer from './messageReducer';
|
||||
import authReducer from './authReducer';
|
||||
|
||||
export default combineReducers({
|
||||
auth: authReducer,
|
||||
workspace: workspaceReducer,
|
||||
tutorial: tutorialReducer,
|
||||
builder: tutorialBuilderReducer,
|
||||
|
||||
Reference in New Issue
Block a user