export const useAuthStore = defineStore('authStore', () => { const auth = ref({ seq: '', // 시퀀스 id: '', // 아이디 name: '', // 이름 email: '', // 이메일 companyName: '', // 회사명 phone: '', // 전화번호 memberType: '', // 사용자 타입 (VENDOR, INFLUENCER) accessToken: '', // 토큰 refreshToken: '', // 갱신토큰 snsTempData : '', // sns 임시데이터 }) // 전체 조회 const getSeq = computed(() => auth.value.seq) // 시퀀스 조회 const getUserId = computed(() => auth.value.id) // 아이디 조회 const getUserName = computed(() => auth.value.name) // 이름 조회 const getUserEmail = computed(() => auth.value.email) // 이메일 조회 const getCompanyName = computed(() => auth.value.companyName) // 회사명 조회 const getUserPhone = computed(() => auth.value.phone) // 관리자 핸드폰 조회 const getAccessToken = computed(() => auth.value.accessToken) // 토큰 조회 const getRefreshToken = computed(() => auth.value.refreshToken) // 리프레시토큰 조회 const getSnsTempData = computed(() => auth.value.snsTempData) // sns 임시데이터 조회 function setAuth(payload){ auth.value.seq = payload.user.SEQ auth.value.id = payload.user.ID auth.value.name = payload.user.NAME auth.value.email = payload.user.EMAIL auth.value.companyName = payload.user.companyName || payload.user.COMPANY_NAME || '' auth.value.phone = payload.user.PHONE // 사용자 타입 설정 (COMPANY_NUMBER가 있으면 벤더사, 없으면 인플루언서) auth.value.memberType = (payload.user.COMPANY_NUMBER) ? 'VENDOR' : 'INFLUENCER' auth.value.accessToken = payload.accessToken auth.value.refreshToken = payload.refreshToken } function setTempData(payload){ auth.value.snsTempData = payload } function setAccessToken(token){ auth.value.accessToken = token } function setRefreshToken(token){ auth.value.refreshToken = token } // logout function setLogout(){ // 모든 필드 초기화 auth.value = { seq: '', id: '', name: '', email: '', companyName: '', phone: '', memberType: '', accessToken: '', refreshToken: '', snsTempData: '' } } return { auth, getSnsTempData, getAccessToken, getRefreshToken, setAuth, setTempData, setAccessToken, setRefreshToken, setLogout, getSeq, getUserId, getUserName, getUserEmail, getCompanyName, getUserPhone } }, {persist: { storage: persistedState.localStorage}})