· 3 months ago · Jun 20, 2025, 12:15 PM
1<template>
2 <v-form @submit.prevent="handleLogin">
3 <v-btn type="submit">Login</v-btn>
4 <v-alert v-if="error" type="error">{{ error }}</v-alert>
5 </v-form>
6</template>
7
8<script setup>
9import { ref } from 'vue';
10import { useRouter } from 'vue-router';
11
12import { createDirectus, authentication, login } from "@directus/sdk";
13
14const directus = createDirectus("http://directus.local:8055").with(authentication());
15
16const email = ref('user01@example.com');
17const password = ref('pass01');
18const error = ref(null);
19const router = useRouter();
20
21const handleLogin = async () =>
22{
23 error.value = null;
24 try
25 {
26 const response = await directus.login(email.value, password.value,{mode: "session"});
27 router.push('/');
28 }
29 catch (err)
30 {
31 error.value = 'Invalid email or password';
32 console.error(err);
33 }
34};
35</script>