27 lines
616 B
TypeScript
27 lines
616 B
TypeScript
|
import { useMyselfStore } from '~~/src/stores/MyselfStore'
|
||
|
|
||
|
export interface useAuth {
|
||
|
validate(): Promise<void>
|
||
|
setAuthCode(authCode: string): void
|
||
|
}
|
||
|
|
||
|
|
||
|
export default () => {
|
||
|
const MyselfStore = useMyselfStore()
|
||
|
|
||
|
return {
|
||
|
validate: async (): Promise<void> => {
|
||
|
if (MyselfStore.authCode.length != 6) {
|
||
|
throw Error('login failed')
|
||
|
}
|
||
|
const resp = await $fetch(`/api/login?code=${MyselfStore.authCode}`)
|
||
|
if (resp !== 'ok') {
|
||
|
throw Error('login failed')
|
||
|
}
|
||
|
},
|
||
|
setAuthCode: (authCode: string): void => {
|
||
|
MyselfStore.setAuthCode(authCode)
|
||
|
}
|
||
|
}
|
||
|
}
|