mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-27 07:16:19 +09:00
feat(auth): implement login API integration with backend
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { reactive } from 'vue'
|
||||
|
||||
|
||||
type user={
|
||||
'id': string,
|
||||
'username': string,
|
||||
'role': string,
|
||||
'displayName': string
|
||||
}
|
||||
export const useUserStore = defineStore('user', () => {
|
||||
const userInfo = reactive<user>({
|
||||
'id': '',
|
||||
'username': '',
|
||||
'role': '',
|
||||
'displayName': ''
|
||||
})
|
||||
|
||||
|
||||
const login = (userData: user,token:string) => {
|
||||
localStorage.setItem('token',token)
|
||||
for (const key of Object.keys(userData) as (keyof user)[]) {
|
||||
userInfo[key] = userData[key]
|
||||
}
|
||||
}
|
||||
|
||||
const exitLogin = () => {
|
||||
localStorage.removeItem('token')
|
||||
for (const key of Object.keys(userInfo) as (keyof user)[]) {
|
||||
userInfo[key]=''
|
||||
}
|
||||
}
|
||||
return {
|
||||
userInfo,
|
||||
login,
|
||||
exitLogin
|
||||
}
|
||||
}, {
|
||||
persist:true
|
||||
})
|
||||
Reference in New Issue
Block a user