auth.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. export const useAuthStore = defineStore('authStore', () => {
  2. const auth = ref({
  3. seq: '', // 시퀀스
  4. id: '', // 아이디
  5. name: '', // 이름
  6. email: '', // 이메일
  7. companyName: '', // 회사명
  8. phone: '', // 전화번호
  9. memberType: '', // 사용자 타입 (VENDOR, INFLUENCER)
  10. accessToken: '', // 토큰
  11. refreshToken: '', // 갱신토큰
  12. snsTempData : '', // sns 임시데이터
  13. })
  14. // 전체 조회
  15. const getSeq = computed(() => auth.value.seq) // 시퀀스 조회
  16. const getUserId = computed(() => auth.value.id) // 아이디 조회
  17. const getUserName = computed(() => auth.value.name) // 이름 조회
  18. const getUserEmail = computed(() => auth.value.email) // 이메일 조회
  19. const getCompanyName = computed(() => auth.value.companyName) // 회사명 조회
  20. const getUserPhone = computed(() => auth.value.phone) // 관리자 핸드폰 조회
  21. const getAccessToken = computed(() => auth.value.accessToken) // 토큰 조회
  22. const getRefreshToken = computed(() => auth.value.refreshToken) // 리프레시토큰 조회
  23. const getSnsTempData = computed(() => auth.value.snsTempData) // sns 임시데이터 조회
  24. function setAuth(payload){
  25. auth.value.seq = payload.user.SEQ
  26. auth.value.id = payload.user.ID
  27. auth.value.name = payload.user.NAME
  28. auth.value.email = payload.user.EMAIL
  29. auth.value.companyName = payload.user.companyName || payload.user.COMPANY_NAME || ''
  30. auth.value.phone = payload.user.PHONE
  31. // 사용자 타입 설정 (COMPANY_NUMBER가 있으면 벤더사, 없으면 인플루언서)
  32. auth.value.memberType = (payload.user.COMPANY_NUMBER) ? 'VENDOR' : 'INFLUENCER'
  33. auth.value.accessToken = payload.accessToken
  34. auth.value.refreshToken = payload.refreshToken
  35. }
  36. function setTempData(payload){
  37. auth.value.snsTempData = payload
  38. }
  39. function setAccessToken(token){
  40. auth.value.accessToken = token
  41. }
  42. function setRefreshToken(token){
  43. auth.value.refreshToken = token
  44. }
  45. // logout
  46. function setLogout(){
  47. // 모든 필드 초기화
  48. auth.value = {
  49. seq: '',
  50. id: '',
  51. name: '',
  52. email: '',
  53. companyName: '',
  54. phone: '',
  55. memberType: '',
  56. accessToken: '',
  57. refreshToken: '',
  58. snsTempData: ''
  59. }
  60. }
  61. return {
  62. auth,
  63. getSnsTempData,
  64. getAccessToken,
  65. getRefreshToken,
  66. setAuth,
  67. setTempData,
  68. setAccessToken,
  69. setRefreshToken,
  70. setLogout,
  71. getSeq,
  72. getUserId,
  73. getUserName,
  74. getUserEmail,
  75. getCompanyName,
  76. getUserPhone
  77. }
  78. }, {persist: { storage: persistedState.localStorage}})