Update: 2026-07-13 22:23:21
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { getToken, setToken } from '../api/client'
|
||||
import * as transitApi from '../api/transit'
|
||||
|
||||
export const useAuthStore = defineStore('auth', {
|
||||
state: () => ({
|
||||
token: getToken(),
|
||||
admin: JSON.parse(localStorage.getItem('transit_admin_profile') || 'null'),
|
||||
org: JSON.parse(localStorage.getItem('transit_admin_org') || 'null'),
|
||||
}),
|
||||
getters: {
|
||||
isLoggedIn: (state) => !!state.token,
|
||||
},
|
||||
actions: {
|
||||
async verifyOtp(phone, otp) {
|
||||
const res = await transitApi.loginVerify(phone, otp)
|
||||
this.token = res.token
|
||||
this.admin = res.admin
|
||||
this.org = res.org
|
||||
setToken(res.token)
|
||||
localStorage.setItem('transit_admin_profile', JSON.stringify(res.admin))
|
||||
localStorage.setItem('transit_admin_org', JSON.stringify(res.org))
|
||||
return res
|
||||
},
|
||||
async logout() {
|
||||
try { await transitApi.logout() } catch (e) { /* الجلسة قد تكون منتهية أصلاً */ }
|
||||
this.token = ''
|
||||
this.admin = null
|
||||
this.org = null
|
||||
setToken(null)
|
||||
localStorage.removeItem('transit_admin_profile')
|
||||
localStorage.removeItem('transit_admin_org')
|
||||
},
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user