auth.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. export const useAuthStore = defineStore('authStore', () => {
  2. const auth = ref({
  3. seq: '', // 시퀀스
  4. id: '', // 아이디
  5. name: '', // 이름
  6. email: '', // 이메일
  7. companyName: '', // 회사명
  8. companyNumber: '', // 회사번호 (COMPANY_NUMBER)
  9. phone: '', // 전화번호
  10. memberType: '', // 사용자 타입 (VENDOR, INFLUENCER)
  11. accessToken: '', // 토큰
  12. refreshToken: '', // 갱신토큰
  13. snsTempData : '', // sns 임시데이터
  14. })
  15. // 전체 조회
  16. const getSeq = computed(() => auth.value.seq) // 시퀀스 조회
  17. const getUserId = computed(() => auth.value.id) // 아이디 조회
  18. const getUserName = computed(() => auth.value.name) // 이름 조회
  19. const getUserEmail = computed(() => auth.value.email) // 이메일 조회
  20. const getCompanyName = computed(() => auth.value.companyName) // 회사명 조회
  21. const getCompanyNumber = computed(() => auth.value.companyNumber) // 회사번호 조회
  22. const getUserPhone = computed(() => auth.value.phone) // 관리자 핸드폰 조회
  23. const getAccessToken = computed(() => auth.value.accessToken) // 토큰 조회
  24. const getRefreshToken = computed(() => auth.value.refreshToken) // 리프레시토큰 조회
  25. const getSnsTempData = computed(() => auth.value.snsTempData) // sns 임시데이터 조회
  26. function setAuth(payload){
  27. console.log('=== setAuth 함수 디버깅 ===');
  28. console.log('payload.user:', payload.user);
  29. auth.value.seq = payload.user.SEQ
  30. auth.value.id = payload.user.ID
  31. auth.value.name = payload.user.NAME
  32. auth.value.email = payload.user.EMAIL
  33. auth.value.companyName = payload.user.companyName || payload.user.COMPANY_NAME || ''
  34. auth.value.companyNumber = payload.user.companyNumber || payload.user.COMPANY_NUMBER || ''
  35. auth.value.phone = payload.user.PHONE
  36. console.log('설정된 companyNumber:', auth.value.companyNumber);
  37. console.log('원본 COMPANY_NUMBER:', payload.user.COMPANY_NUMBER);
  38. console.log('원본 companyNumber:', payload.user.companyNumber);
  39. // 사용자 타입 설정
  40. if (payload.user.MEMBER_TYPE === 'B') {
  41. // 브랜드사
  42. auth.value.memberType = 'BRAND'
  43. } else if (payload.user.COMPANY_NUMBER || payload.user.companyNumber) {
  44. // 벤더사
  45. auth.value.memberType = 'VENDOR'
  46. } else {
  47. // 인플루언서
  48. auth.value.memberType = 'INFLUENCER'
  49. }
  50. console.log('설정된 memberType:', auth.value.memberType);
  51. console.log('=============================');
  52. auth.value.accessToken = payload.accessToken
  53. auth.value.refreshToken = payload.refreshToken
  54. }
  55. function setTempData(payload){
  56. auth.value.snsTempData = payload
  57. }
  58. function setAccessToken(token){
  59. auth.value.accessToken = token
  60. }
  61. function setRefreshToken(token){
  62. auth.value.refreshToken = token
  63. }
  64. // logout
  65. function setLogout(){
  66. // 모든 필드 초기화
  67. auth.value = {
  68. seq: '',
  69. id: '',
  70. name: '',
  71. email: '',
  72. companyName: '',
  73. companyNumber: '',
  74. phone: '',
  75. memberType: '',
  76. accessToken: '',
  77. refreshToken: '',
  78. snsTempData: ''
  79. }
  80. }
  81. return {
  82. auth,
  83. getSnsTempData,
  84. getAccessToken,
  85. getRefreshToken,
  86. setAuth,
  87. setTempData,
  88. setAccessToken,
  89. setRefreshToken,
  90. setLogout,
  91. getSeq,
  92. getUserSeq: getSeq, // getUserSeq 별칭 추가
  93. getUserId,
  94. getUserName,
  95. getUserEmail,
  96. getCompanyName,
  97. getCompanyNumber,
  98. getUserPhone
  99. }
  100. }, {persist: { storage: persistedState.localStorage}})