๐ Vuex๋ฅผ ์ด์ฉํ ๋ก๊ทธ์ธ ๊ด๋ฆฌ
์ด๋ฒ์๋ Vuex์ JWT๋ฅผ ์ด์ฉํ์ฌ Token์ ๊ด๋ฆฌํ๊ณ ์ ํ๋ค.
์ฌ์ค ํ์
์์๋ ์ธ์
์ฟ ํค๋ฅผ ๋ ์ฐ๋๊ฑธ๋ก ์๊ณ ์์ง๋ง, Token์ผ๋ก ๊ตฌํํด๋ณด์๋ค,
์์๋ userStore์์ฑ => Vuex์ Token ์ ์ฅ => ์๋ก๊ณ ์นจ ํ ๊ฒฝ์ฐ ํ ํฐ ์ ์ฅ
1๏ธโฃuserStore์์ฑ
์ฒ์์๋ store > modules ํด๋ ๋ฐ์ userStore ๋ฅผ ์์ฑํ๋ค
//userStore.js
const userStore = {
namespaced: true,
state: {},
getters: {},
mutations: {},
actions: {},
};
export default userStore;
* ํด๋ ์์น๋ ์๋ ์ฌ์ง์ ์ฒจ๋ถํ๋ค.

2๏ธโฃVuex์ Token ์ ์ฅ
์ ๊ฐ์ ๊ฒฝ์ฐ ๋ก๊ทธ์ธ ์ฑ๊ณตํ์ ๊ฒฝ์ฐ Vuex์ mutations ํ์ฉํ์ฌ ํ ํฐ์ ์ ์ฅํ์๋ค.
์ฝ๋๋ userStore.js์ mutations ์์ ๋ก์ง์ ๋ฃ๋๋ค. payload๋ถ๋ถ์ ํ๋ผ๋ฏธํฐ๋ก ๋ณดํต ํ์ฉ๋๊ณ
state๋ ์ํ๊ด๋ฆฌ ๋ฐ์ดํฐ๋ก ํ์ฉ๋ฉ๋๋ค. MU_TOKEN์ ํ์ฉํ์ฌ accessToken, refreshToken์ ์ ์ฅํ๋ค.
//userStore.js
const userStore = {
namespaced: true,
state: {},
getters: {},
mutations: {
MU_TOKEN: (state, payload) => {
state.accessToken = payload.ACCESS_TOKEN;
state.refreshToken = payload.REFRESH_TOKEN;
},
},
actions: {},
};
export default userStore;
3๏ธโฃ์๋ก๊ณ ์นจ ํ ๊ฒฝ์ฐ ํ ํฐ ์ ์ฅ
Vuex ๊ฐ์ ๊ฒฝ์ฐ ์๋ก๊ณ ์นจํ ๊ฒฝ์ฐ Vuex์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ๋ ์๊ฐ๋ค. ๊ทธ๋์ ์๋ก๊ณ ์นจ ํ ๋๋ง๋ค, Vuex์ ๊ฐ์ ๋ฃ์ด์ค์ผํ๋๋ฐ
๋ ๊ฐ์ ๊ฒฝ์ฐ๋ localStorage์ ์ ์ฅํ ํ์ ์๋ก๊ณ ์นจ ํ ๋ localStorage์์ ๊ฐ์ ํ์ธํ์ฌ Vuex์ ๊ฐ์ ๋ฃ์ด์ฃผ์๋ค.
๊ทธ๋ฌ๊ธฐ ์ํด์๋ ์ฒ์์๋ localStorage์์ ๊ฐ์ ๊ฐ์ ธ์ค๋ ํจ์๊ฐ ํ์ํ๋ค.
token ๊ด๋ฆฌํ๋ ํจ์
getAccessToken,getRefreshToken์ ํ์ฉํ์ฌ ๊ฐ์ ์ถ์ถํ๋ค.
// utils/token.js
const getAccessToken = () => {
return localStorage.getItem('accessToken');
};
const getRefreshToken = () => {
return localStorage.getItem('refreshToken');
};
export {
getAccessToken,
getRefreshToken,
};
userStore.js์์ ๊ฐ์ ์ธํ
getAccessToken,getRefreshToken๋ฅผ importํ์ฌ state์ ์ธํ ํด์ค๋ค.
//userStore.js
import {getAccessToken,getRefreshToken} from 'root/utils/token';
const userStore = {
namespaced: true,
state: {
accessToken: getAccessToken(),
refreshToken: getRefreshToken(),
},
getters: {},
mutations: {
MU_TOKEN: (state, payload) => {
state.accessToken = payload.ACCESS_TOKEN;
state.refreshToken = payload.REFRESH_TOKEN;
},
},
actions: {},
};
export default userStore;'Vue' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๐ vee-validate ์ ์ฉ (0) | 2022.08.07 |
|---|---|
| โ Vue Slot์ผ๋ก ํ ์ด๋ธ ๊ตฌํ (0) | 2022.05.31 |
| ๐ค vue auto routing + ๋ค๋น๊ฒ์ด์ ๊ฐ (0) | 2022.05.05 |
| Vue + eslint + prettier (0) | 2022.02.24 |
| ๐ชeslint + prettier๋ฅผ Vue์ ์ ์ฉํ๊ธฐ (2) | 2021.08.16 |
๋๊ธ