From ba698c985328e1b3658b593969e5f8dfb5e7e35c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=9D=99?= Date: Wed, 24 Nov 2021 17:24:54 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Api/V1/Auth/LoginController.php | 45 +++++++++++++++++++ app/Http/Requests/Api/V1/LoginRequest.php | 32 +++++++++++++ resources/lang/zh_CN.json | 1 + routes/api/v1/auth.php | 2 + 4 files changed, 80 insertions(+) create mode 100644 app/Http/Controllers/Api/V1/Auth/LoginController.php create mode 100644 app/Http/Requests/Api/V1/LoginRequest.php diff --git a/app/Http/Controllers/Api/V1/Auth/LoginController.php b/app/Http/Controllers/Api/V1/Auth/LoginController.php new file mode 100644 index 00000000..6c43f16a --- /dev/null +++ b/app/Http/Controllers/Api/V1/Auth/LoginController.php @@ -0,0 +1,45 @@ +validatePhrase( + (string) $request->input('captcha_key'), + (string) $request->input('captcha_phrase') + ); + + $user = User::where('phone', $request->input('phone'))->first(); + + if (! $user?->verifyPassword($request->input('password'))) { + throw new BizException(__('Incorrect account or password')); + } + + $user->update([ + 'last_login_at' => now(), + 'last_login_ip' => $request->realIp(), + ]); + + $user->tokens()->delete(); + + return response()->json( + $user->createDeviceToken(Device::UNIAPP) + ); + } +} diff --git a/app/Http/Requests/Api/V1/LoginRequest.php b/app/Http/Requests/Api/V1/LoginRequest.php new file mode 100644 index 00000000..a0994664 --- /dev/null +++ b/app/Http/Requests/Api/V1/LoginRequest.php @@ -0,0 +1,32 @@ + ['bail', 'required', 'string'], + 'password' => ['bail', 'required', 'string'], + 'captcha_phrase' => ['bail', 'required', 'string'], + ]; + } +} diff --git a/resources/lang/zh_CN.json b/resources/lang/zh_CN.json index dc0b26cd..2e0d9f77 100644 --- a/resources/lang/zh_CN.json +++ b/resources/lang/zh_CN.json @@ -1,5 +1,6 @@ { ":resource not found": ":resource 未找到", + "Incorrect account or password": "账户或密码错误", "Invalid captcha": "无效的验证码", "Invalid invitation code": "无效的邀请码", "Invalid verification code": "无效的验证码", diff --git a/routes/api/v1/auth.php b/routes/api/v1/auth.php index d22bfa79..804161aa 100644 --- a/routes/api/v1/auth.php +++ b/routes/api/v1/auth.php @@ -1,6 +1,8 @@