From 2bbbadcd1f8413ccc8f370bf92de879d47ef275e Mon Sep 17 00:00:00 2001 From: "iVampireSP.com" Date: Sun, 26 Feb 2023 21:10:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=20=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Helpers/Auth/AuthenticatesUsers.php | 18 ++ .../Web/Auth/RegisterController.php | 7 +- app/Http/Controllers/Web/AuthController.php | 2 +- .../Middleware/RedirectIfAuthenticated.php | 4 +- resources/views/auth/login.blade.php | 155 +++++++++++++++--- routes/web.php | 1 + 6 files changed, 155 insertions(+), 32 deletions(-) diff --git a/app/Helpers/Auth/AuthenticatesUsers.php b/app/Helpers/Auth/AuthenticatesUsers.php index dd8a703..17390de 100644 --- a/app/Helpers/Auth/AuthenticatesUsers.php +++ b/app/Helpers/Auth/AuthenticatesUsers.php @@ -2,6 +2,7 @@ namespace App\Helpers\Auth; +use App\Models\User; use Illuminate\Contracts\Auth\StatefulGuard; use Illuminate\Http\JsonResponse; use Illuminate\Http\RedirectResponse; @@ -23,6 +24,23 @@ public function showLoginForm(): View return view('auth.login'); } + public function userIfExists(Request $request) + { + $request->validate([ + 'email' => 'required|email', + ]); + + $user = User::where('email', $request->input('email'))->first(); + + if ($user) { + return $this->success([ + 'name' => $user->name, + ]); + } + + return $this->notFound(); + } + /** * Handle a login request to the application. * diff --git a/app/Http/Controllers/Web/Auth/RegisterController.php b/app/Http/Controllers/Web/Auth/RegisterController.php index 729cfc5..30e3c46 100644 --- a/app/Http/Controllers/Web/Auth/RegisterController.php +++ b/app/Http/Controllers/Web/Auth/RegisterController.php @@ -6,6 +6,7 @@ use App\Http\Controllers\Controller; use App\Models\User; use App\Providers\RouteServiceProvider; +use Faker\Provider\zh_CN\Person; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Validator; @@ -45,9 +46,9 @@ public function __construct() protected function validator(array $data): \Illuminate\Contracts\Validation\Validator { return Validator::make($data, [ - 'name' => ['required', 'string', 'max:255'], + 'name' => ['nullable', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], - 'password' => ['required', 'string', 'min:8', 'confirmed'], + 'password' => ['required', 'string', 'min:8'], ]); } @@ -57,7 +58,7 @@ protected function validator(array $data): \Illuminate\Contracts\Validation\Vali protected function create(array $data): User { return (new User)->create([ - 'name' => $data['name'], + 'name' => $data['name'] ?? '随机 - '.Person::firstNameMale(), 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); diff --git a/app/Http/Controllers/Web/AuthController.php b/app/Http/Controllers/Web/AuthController.php index e36794c..0d7a372 100644 --- a/app/Http/Controllers/Web/AuthController.php +++ b/app/Http/Controllers/Web/AuthController.php @@ -52,7 +52,7 @@ public function index(Request $request): View|RedirectResponse } } - return $request->user('web') ? view('index') : view('welcome'); + return $request->user('web') ? view('index') : view('auth.login'); } public function confirm_redirect(Request $request): View diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php index 42150f0..6dc7236 100644 --- a/app/Http/Middleware/RedirectIfAuthenticated.php +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -4,6 +4,7 @@ use App\Providers\RouteServiceProvider; use Closure; +use Illuminate\Http\JsonResponse; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Http\Response; @@ -14,10 +15,9 @@ class RedirectIfAuthenticated /** * Handle an incoming request. * - * @param Closure(Request): (Response|RedirectResponse) $next * @param string|null ...$guards */ - public function handle(Request $request, Closure $next, ...$guards): Response|RedirectResponse + public function handle(Request $request, Closure $next, ...$guards): Response|RedirectResponse|JsonResponse { $guards = empty($guards) ? [null] : $guards; diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index ea03af6..4129e96 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -2,9 +2,9 @@ @section('content') -

欢迎使用 {{ config('app.display_name') }}

+

注册/登录 {{ config('app.display_name') }}

-
+ @csrf
@@ -12,42 +12,145 @@
-
- - -
+
-
-
- - + + {{-- --}} + + +
+ + + {{ __('Forgot Your Password?') }} + + +
+ +
+
+ + + @error('password') + + {{ $message }} + + @enderror
-
如果您继续,则代表您已经阅读并同意 + + +
+ +
+
+
+ + +
+
+
+ + + +
- - +
- + - - {{ __('Register') }} - -   - - {{ __('Forgot Your Password?') }} - @endsection diff --git a/routes/web.php b/routes/web.php index 035d8e6..82d2a41 100644 --- a/routes/web.php +++ b/routes/web.php @@ -21,6 +21,7 @@ Route::get('login', [LoginController::class, 'showLoginForm'])->name('login'); Route::post('login', [LoginController::class, 'login']); Route::post('logout', [LoginController::class, 'logout'])->name('logout'); + Route::post('exists', [LoginController::class, 'userIfExists'])->name('login.exists-if-user'); Route::get('register', [RegisterController::class, 'showRegistrationForm'])->name('register'); Route::post('register', [RegisterController::class, 'register']);