auth.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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. // 사용자 타입 설정 (COMPANY_NUMBER가 있으면 벤더사, 없으면 인플루언서)
  40. auth.value.memberType = (payload.user.COMPANY_NUMBER || payload.user.companyNumber) ? 'VENDOR' : 'INFLUENCER'
  41. console.log('설정된 memberType:', auth.value.memberType);
  42. console.log('=============================');
  43. auth.value.accessToken = payload.accessToken
  44. auth.value.refreshToken = payload.refreshToken
  45. }
  46. function setTempData(payload){
  47. auth.value.snsTempData = payload
  48. }
  49. function setAccessToken(token){
  50. auth.value.accessToken = token
  51. }
  52. function setRefreshToken(token){
  53. auth.value.refreshToken = token
  54. }
  55. // logout
  56. function setLogout(){
  57. // 모든 필드 초기화
  58. auth.value = {
  59. seq: '',
  60. id: '',
  61. name: '',
  62. email: '',
  63. companyName: '',
  64. companyNumber: '',
  65. phone: '',
  66. memberType: '',
  67. accessToken: '',
  68. refreshToken: '',
  69. snsTempData: ''
  70. }
  71. }
  72. return {
  73. auth,
  74. getSnsTempData,
  75. getAccessToken,
  76. getRefreshToken,
  77. setAuth,
  78. setTempData,
  79. setAccessToken,
  80. setRefreshToken,
  81. setLogout,
  82. getSeq,
  83. getUserSeq: getSeq, // getUserSeq 별칭 추가
  84. getUserId,
  85. getUserName,
  86. getUserEmail,
  87. getCompanyName,
  88. getCompanyNumber,
  89. getUserPhone
  90. }
  91. }, {persist: { storage: persistedState.localStorage}})