diff --git a/public/site/config/config.php b/public/site/config/config.php
index 2896a5f..7e92b30 100644
--- a/public/site/config/config.php
+++ b/public/site/config/config.php
@@ -27,6 +27,7 @@ return [
],
'routes' => [
require(__DIR__ . '/routes/logout.php'),
+ require(__DIR__ . '/routes/login.php'),
require(__DIR__ . '/routes/toggle-favorite.php'),
require(__DIR__ . '/routes/upload-images.php'),
require(__DIR__ . '/routes/save-page.php'),
diff --git a/public/site/config/routes/login.php b/public/site/config/routes/login.php
new file mode 100644
index 0000000..2569ba2
--- /dev/null
+++ b/public/site/config/routes/login.php
@@ -0,0 +1,35 @@
+ "login.json",
+ "method" => "POST",
+ "action" => function () {
+ $json = file_get_contents("php://input");
+ $data = json_decode($json);
+
+ $kirby = kirby();
+
+ $email = $data->email;
+ $password = $data->password;
+
+ if(V::email($email)) {
+ try {
+ $kirby->auth()->login($email, $password);
+ return json_encode([
+ "status" => "success",
+ "role" => (string) $kirby->user()->role()
+ ]);
+ } catch (Exception $e) {
+ return json_encode([
+ "status" => "error",
+ "message" => "Email ou mot de passe invalide.
Contactez l'administrateur pour demander la réinitialisation de vos informations de connexion."
+ ]);
+ }
+ } else {
+ return json_encode([
+ "status" => "error",
+ "message" => "Email invalide."
+ ]);
+ }
+ },
+];
diff --git a/public/site/config/routes/logout.php b/public/site/config/routes/logout.php
index 9f92b94..2f71026 100644
--- a/public/site/config/routes/logout.php
+++ b/public/site/config/routes/logout.php
@@ -10,6 +10,6 @@ return [
session_start();
}
- go(site()->panel()->url());
+ go(site()->url() . '/login');
},
];
diff --git a/src/views/Login.vue b/src/views/Login.vue
index 4e9750a..211f9e0 100644
--- a/src/views/Login.vue
+++ b/src/views/Login.vue
@@ -2,17 +2,19 @@