refactor(account): 로그인 상태 필드 정리 및 role 저장
왜: userId/nickname/profileImage는 사용처가 없어 유지보수 단순화. 대신 권한 판별을 위해 role 필요.\n무엇: accountStore에서 세 필드 삭제, role 추가. isAuthenticated 동기화 수정. LOGIN/LOGOUT 로직 role 반영. Axios Authorization 유지.
This commit is contained in:
@@ -12,17 +12,13 @@ enhanceAccessToken();
|
||||
const accountStore = {
|
||||
namespaced: true,
|
||||
state: {
|
||||
userId: '',
|
||||
nickname: '',
|
||||
accessToken: '',
|
||||
profileImage: '',
|
||||
role: '',
|
||||
},
|
||||
getters: {
|
||||
isAuthenticated(state) {
|
||||
state.userId = state.userId || localStorage.userId
|
||||
state.nickname = state.nickname || localStorage.nickname
|
||||
state.profileImage = state.profileImage || localStorage.profileImage
|
||||
state.accessToken = state.accessToken || localStorage.accessToken
|
||||
state.role = state.role || localStorage.role
|
||||
|
||||
return state.accessToken !== undefined &&
|
||||
state.accessToken !== null &&
|
||||
@@ -31,27 +27,19 @@ const accountStore = {
|
||||
}
|
||||
},
|
||||
mutations: {
|
||||
LOGIN(state, {userId, nickname, token, profileImage}) {
|
||||
state.userId = userId
|
||||
localStorage.userId = userId
|
||||
|
||||
state.nickname = nickname
|
||||
localStorage.nickname = nickname
|
||||
|
||||
state.profileImage = profileImage
|
||||
localStorage.profileImage = profileImage
|
||||
|
||||
LOGIN(state, {token, role}) {
|
||||
state.accessToken = token
|
||||
localStorage.accessToken = token
|
||||
|
||||
state.role = role
|
||||
localStorage.role = role
|
||||
|
||||
Vue.axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;
|
||||
},
|
||||
|
||||
LOGOUT(state) {
|
||||
state.userId = ''
|
||||
state.nickname = ''
|
||||
state.profileImage = ''
|
||||
state.accessToken = ''
|
||||
state.role = ''
|
||||
|
||||
localStorage.clear()
|
||||
if (location.pathname === '/') {
|
||||
|
||||
Reference in New Issue
Block a user