You've already forked lubo_comment_query
							
							
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Http\Controllers;
 | |
| 
 | |
| use App\Models\User;
 | |
| use Illuminate\Http\Request;
 | |
| use Illuminate\Routing\Controller as BaseController;
 | |
| use Illuminate\Support\Facades\Auth;
 | |
| use Illuminate\Support\Facades\Hash;
 | |
| 
 | |
| class UserController extends BaseController
 | |
| {
 | |
|     // region Views
 | |
|     public function login_page(Request $request)
 | |
|     {
 | |
|         return view("user.login");
 | |
|     }
 | |
| 
 | |
|     public function logout(Request $request)
 | |
|     {
 | |
|         Auth::logout();
 | |
|         $request->session()->invalidate();
 | |
|         $request->session()->regenerateToken();
 | |
|         return redirect("/");
 | |
|     }
 | |
| 
 | |
|     public function register_page(Request $request)
 | |
|     {
 | |
|         return view("user.register");
 | |
|     }
 | |
|     // endregion
 | |
| 
 | |
|     // region Form Submit
 | |
|     public function authenticate(Request $request): \Illuminate\Http\RedirectResponse
 | |
|     {
 | |
|         $request->validate([
 | |
|             "username" => ["required"],
 | |
|             "password" => ["required"],
 | |
|         ]);
 | |
|         $credentials = [
 | |
|             "password" => $request->post("password"),
 | |
|         ];
 | |
|         if (str_contains($request->post("username"), "@")) {
 | |
|             $credentials["email"] = $request->post("username");
 | |
|         } else {
 | |
|             $credentials["name"] = $request->post("username");
 | |
|         }
 | |
|         if (Auth::attempt($credentials, $request->post("remember", 0) == 1)) {
 | |
|             $request->session()->regenerate();
 | |
|             return redirect()->intended();
 | |
|         }
 | |
|         return back()->withErrors([
 | |
|             "username" => "无此用户",
 | |
|         ]);
 | |
|     }
 | |
| 
 | |
|     public function register(Request $request)
 | |
|     {
 | |
|         $request_payload = $request->validate([
 | |
|             "name" => ["required", "unique:users"],
 | |
|             "email" => ["required", "email", "unique:users"],
 | |
|             "password" => ["required"],
 | |
|         ]);
 | |
|         $user = new User();
 | |
|         $request_payload["password"] = Hash::make($request_payload["password"]);
 | |
|         $user->fill($request_payload);
 | |
|         $user->save();
 | |
|         return redirect(route("login"));
 | |
|     }
 | |
|     // endregion
 | |
| }
 |