Skip to content

Commit 85f9eb4

Browse files
authored
[EC-57] refactor: 사용자 권한에 따른 사이드바 자동화 추가 (#41)
1 parent ecad056 commit 85f9eb4

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

client/src/pages/login/Login.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { authApi } from '../../api/authApi';
66
import { useDispatch, useSelector } from 'react-redux';
77
import { login } from '../../store/slices/authSlice';
88
import { useNavigate } from 'react-router-dom';
9-
9+
import { setRole } from '../../store/slices/sideBarItemSlice';
1010
export default function Login() {
1111
const isLoggedIn = useSelector((state) => state.auth.isLoggedIn);
1212
const dispatch = useDispatch();
@@ -35,6 +35,7 @@ export default function Login() {
3535
...response.data.data,
3636
accessToken: accessToken,
3737
}),
38+
setRole(response.data.data),
3839
);
3940
navigate('/', { replace: true });
4041
} catch (error) {
@@ -82,7 +83,6 @@ export default function Login() {
8283
title="로그인"
8384
isEnable={isLoginButtonEnable}
8485
></MainButton>
85-
8686
</div>
8787
</div>
8888
);

client/src/store/slices/authSlice.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,11 @@ const authSlice = createSlice({
3737
phoneNumber: action.payload.phoneNumber || '',
3838
lastLoginDate: action.payload.lastLoginDate || '',
3939
};
40-
4140
},
4241
logout: (state, action) => {
4342
state.accessToken = '';
4443
state.isLoggedIn = false;
4544
state.user = { ...initialState.user };
46-
4745
},
4846
},
4947
});

client/src/store/slices/sideBarItemSlice.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { createSlice } from '@reduxjs/toolkit';
22
import { login, logout } from './authSlice';
3+
import { jwtDecode } from 'jwt-decode';
34

45
const initialState = {
5-
nav: '출결',
6+
nav: '',
67
tab: 0,
78
};
89

@@ -24,7 +25,10 @@ const sideBarItemSlice = createSlice({
2425
extraReducers: (builder) => {
2526
builder
2627
.addCase(login, (state, action) => {
27-
state.nav = action.payload.role === 'STUDENT' ? '출석' : '출결';
28+
const accessToken = action.payload.accessToken.replace('Bearer ', '');
29+
const decodedToken = jwtDecode(accessToken);
30+
const role = decodedToken.roles[0];
31+
state.nav = role === 'STUDENT' ? '출석' : '출결';
2832
})
2933
.addCase(logout, (state) => {
3034
state.nav = '';

0 commit comments

Comments
 (0)