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