@ithinkdt/core
Version:
iThinkDT Core
36 lines (34 loc) • 942 B
JavaScript
import { ref } from 'vue'
import { useRouter } from 'vue-router'
import { Route } from './router'
import { useAuth } from './plugin'
export function useLogin() {
const auth = useAuth()
const loging = ref(false)
async function login(user, load = true) {
loging.value = true
try {
auth.token = await auth.login(user)
load && (await auth.load(true))
} finally {
loging.value = false
}
}
const router = useRouter()
return {
user: auth.user,
loging,
login,
logout: () => {
const { user, app } = auth.$state
const href = router.resolve({
name: Route.LOGOUT,
query: user ? { username: user.username, appCode: app.appCode } : {},
}).href
location.replace(href)
},
next() {
return location.reload()
},
}
}