From a31c8aed394061b3c9c54d7a574f69f2811c2744 Mon Sep 17 00:00:00 2001
From: "p.belezov"
Date: Mon, 19 Aug 2024 17:49:52 +0800
Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D0=BA=D0=B0=D1=82=D0=B0=D0=BB=20?=
=?UTF-8?q?=D0=B1=D0=B0=D0=B7=D0=BE=D0=B2=D1=83=D1=8E=20=D0=B0=D0=B2=D1=82?=
=?UTF-8?q?=D0=BE=D1=80=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/Http/Controllers/API/AuthController.php | 61 +++++++++++++++++++++
resources/App.vue | 18 +++++-
resources/app.js | 5 +-
resources/store/auth.js | 31 +++++++++++
resources/views/About.vue | 24 +++++++-
resources/views/Login.vue | 32 ++++++++++-
resources/views/Register.vue | 45 +++++++++++----
routes/api.php | 5 ++
8 files changed, 203 insertions(+), 18 deletions(-)
create mode 100644 app/Http/Controllers/API/AuthController.php
create mode 100644 resources/store/auth.js
diff --git a/app/Http/Controllers/API/AuthController.php b/app/Http/Controllers/API/AuthController.php
new file mode 100644
index 0000000..a038d97
--- /dev/null
+++ b/app/Http/Controllers/API/AuthController.php
@@ -0,0 +1,61 @@
+all(), [
+ 'name' => 'required',
+ 'email' => 'required|email|unique:users',
+ 'password' => 'required',
+ ]);
+
+ if ($validator->fails()) {
+ return response()->json($validator->errors(), 422);
+ }
+
+ $user = User::create([
+ 'name' => $request->name,
+ 'email' => $request->email,
+ 'password' => bcrypt($request->password),
+ ]);
+
+ $token = $user->createToken('auth_token')->plainTextToken;
+
+ return response()->json([
+ 'user' => $user,
+ 'token' => $token,
+ ]);
+ }
+
+ public function login(Request $request)
+ {
+ if (!Auth::attempt($request->only('email', 'password'))) {
+ return response()->json(['message' => 'Invalid login details'], 401);
+ }
+
+ $user = User::where('email', $request['email'])->firstOrFail();
+
+ $token = $user->createToken('auth_token')->plainTextToken;
+
+ return response()->json([
+ 'user' => $user,
+ 'token' => $token,
+ ]);
+ }
+
+ public function logout(Request $request)
+ {
+ $request->user()->currentAccessToken()->delete();
+
+ return response()->json(['message' => 'Logged out']);
+ }
+}
diff --git a/resources/App.vue b/resources/App.vue
index 6a87148..d3ae563 100644
--- a/resources/App.vue
+++ b/resources/App.vue
@@ -31,8 +31,9 @@
:class="menuOpen ? 'mt-2 mb-2 pa-2' : 'mt-10 mb-3 pa-5'"
>
Главная
- Войти
- Регистрация
+ Войти
+ Регистрация
+ Выйти
@@ -48,6 +49,7 @@
- Hello World!
+ Welcome {{ user != null ? user.name : 'guest' }}!