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 @@