|
|
|
@ -43,8 +43,18 @@ async function fetchLastRequet() {
|
|
|
|
|
return errcode !== 0 ? {} : result
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const initialState = {
|
|
|
|
|
tokenInterval: null,
|
|
|
|
|
tokenTimeout: true,
|
|
|
|
|
loginStatus: 0,
|
|
|
|
|
defaltRoute: '',
|
|
|
|
|
permissionList: []
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const useAuthStore = create(lifecycleware((set, get) => ({
|
|
|
|
|
|
|
|
|
|
...initialState,
|
|
|
|
|
|
|
|
|
|
onAuth: async () => {
|
|
|
|
|
const { startTokenInterval, loadUserPermission } = get()
|
|
|
|
|
const { userId, loginToken } = usingStorage()
|
|
|
|
@ -98,16 +108,11 @@ const useAuthStore = create(lifecycleware((set, get) => ({
|
|
|
|
|
const { clearStorage } = usingStorage()
|
|
|
|
|
clearStorage()
|
|
|
|
|
clearInterval(tokenInterval)
|
|
|
|
|
set(() => ({
|
|
|
|
|
defaultRoute: '/',
|
|
|
|
|
loginStatus: 0,
|
|
|
|
|
tokenInterval: null,
|
|
|
|
|
tokenTimeout: true
|
|
|
|
|
}))
|
|
|
|
|
set(initialState)
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
startTokenInterval: () => {
|
|
|
|
|
const { loginTimeout } = get()
|
|
|
|
|
const { logout } = get()
|
|
|
|
|
|
|
|
|
|
async function checkTokenTimeout() {
|
|
|
|
|
const { LastReqDate } = await fetchLastRequet()
|
|
|
|
@ -116,27 +121,17 @@ const useAuthStore = create(lifecycleware((set, get) => ({
|
|
|
|
|
const diffTime = now.getTime() - lastReqDate.getTime()
|
|
|
|
|
const diffHours = diffTime/1000/60/60
|
|
|
|
|
if (diffHours > 1) {
|
|
|
|
|
loginTimeout()
|
|
|
|
|
logout()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const interval = setInterval(() => checkTokenTimeout(), 1000*60*20)
|
|
|
|
|
const interval = setInterval(() => checkTokenTimeout(), 1000*60*10)
|
|
|
|
|
set(() => ({
|
|
|
|
|
tokenInterval: interval
|
|
|
|
|
}))
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
loginTimeout: () => {
|
|
|
|
|
const { tokenInterval } = get()
|
|
|
|
|
const { clearStorage } = usingStorage()
|
|
|
|
|
clearStorage()
|
|
|
|
|
clearInterval(tokenInterval)
|
|
|
|
|
set(() => ({
|
|
|
|
|
tokenTimeout: true
|
|
|
|
|
}))
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 迁移到 Account.js
|
|
|
|
|
// TODO: 迁移到 Account.js
|
|
|
|
|
changeUserPassword: (password, newPassword) => {
|
|
|
|
|
const { userId } = usingStorage()
|
|
|
|
|
const formData = new FormData();
|
|
|
|
@ -174,16 +169,6 @@ const useAuthStore = create(lifecycleware((set, get) => ({
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
tokenInterval: null,
|
|
|
|
|
|
|
|
|
|
tokenTimeout: false,
|
|
|
|
|
|
|
|
|
|
loginStatus: 0,
|
|
|
|
|
|
|
|
|
|
defaltRoute: '',
|
|
|
|
|
|
|
|
|
|
permissionList: [],
|
|
|
|
|
|
|
|
|
|
})))
|
|
|
|
|
|
|
|
|
|
export default useAuthStore
|