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') -