Xây dựng chức năng đăng nhập và kiểm tra quyền

     

Chào các bạn, hôm này bản thân sẽ ra mắt với các bạn cách tạo thành trang đăng ký, đăng nhập và phần quyền với Laravel.

Bạn đang xem: Xây dựng chức năng đăng nhập và kiểm tra quyền

Nếu chúng ta thực hiện chế tác bảng tài liệu trong mysql bằng phương pháp sử dụng lệnh command "php artisan migrate" thì trong cơ sở tài liệu của các bạn đã sở hữu bảng "users". Nếu như trong cơ sở dữ liệu của chúng ta chưa gồm bảng "users" thì chúng ta gõ lệnh command trên để laravel sẽ auto tạo bảng cho những bạn.

Lavarel đã chế tạo sẵn những file controller mang lại bảng "users" trong folder "app/Http/Controllers/Auth" nên bạn cũng có thể sử dụng các file này nhằm xây dựng công dụng đang nhập.

Trước tiên bọn họ định hướng băng thông website mặc định vẫn vào trang đăng nhập mang đến file web.php trong thư mục routes như sau:

// Sửa đường dẫn home mặc địnhRoute::get("/", "HocsinhController
index");Route::get("/home", "HocsinhController
index");// Đăng cam kết thành viênRoute::get("register", "AuthRegisterController
getRegister");Route::post("register", "AuthRegisterController
postRegister");// Đăng nhập và cách xử lý đăng nhậpRoute::get("login", < "as" => "login", "uses" => "AuthLoginController
getLogin">);Route::post("login", < "as" => "login", "uses" => "AuthLoginController
postLogin">);// Đăng xuấtRoute::get("logout", < "as" => "logout", "uses" => "AuthLogoutController
getLogout">);Tiếp theo, nhằm vào trang học viên kiểm tra nếu không đăng nhập vào khối hệ thống thì sẽ tự động hóa chuyển ra trang đăng nhập bọn họ thêm đoạn code sau trong file "HocSinhController.php":

public function __construct() $this->middleware("auth"); 

Chúng ta sẽ tạo một trang form đăng nhập trong thư mục "resource/views/auth/" file "login.blade.php" với ngôn từ đoạn code sau:


extends("templates.master")
section("title","Trang quản ngại lý")
section("content")
if ( Session::has("success") )
Session::get("success") ×Close
endif
if ( Session::has("error") )
Session::get("error") ×Close
endif
if ($errors->any())
foreach ($errors->all() as $error) $error
endforeach ×Close
endif
!! csrf_field() !!

*

Đăng cam kết - Quên mật khẩu
endsection 

Trong file web.php chúng ta sẽ định trang vẫn nhập bằng phương pháp gọi hàm "getLogin()" trong file "LoginController.php".

Xem thêm: Top 10 Tư Thế Quan Thệ Bằng Miệng Giúp Cặp Đôi Thăng Hoa, Quan Hệ Bằng Miệng Có Nên Không

Vậy nên bọn họ sẽ viết hàm hiển thị size đăng nhập trong "LoginController.php" của thư mục "app/Http/Controllers/Auth" để hotline đến file form chúng ta đã tạo.

public function getLogin() return view("auth/login");Tiếp theo chúng ta sẽ viết thêm hàm xử lý đăng nhập trong "LoginController.php" của thư mục "app/Http/Controllers/Auth". Bọn họ cần khai báo một trong những thư viện được sử dụng trong hàm xử lý.

Xem thêm: Language Focus Unit 10: Recycling Lesson 6, Lớp 8 Unit 10 Test B

use IlluminateHttpRequest;use IlluminateSupportFacadesValidator;use IlluminateSupportFacadesAuth;use Session;Nội dung hàm xử trí đăng nhập:

public function postLogin(Request $request) min:6">;$messages = <"email.required" => "Email là trường bắt buộc","email.email" => "Email sai định dạng","password.required" => "Mật khẩu là trường bắt buộc","password.min" => "Mật khẩu cần chứa tối thiểu 8 cam kết tự",>;$validator = Validator::make($request->all(), $rules, $messages);if ($validator->fails()) // Điều kiện tài liệu không phù hợp lệ sẽ gửi về trang singin và thông tin lỗireturn redirect("login")->withErrors($validator)->withInput(); else // Nếu dữ liệu hợp lệ sẽ đánh giá trong csdl$email = $request->input("email");$password = $request->input("password");if( Auth::attempt(<"email" => $email, "password" =>$password>)) // kiểm soát đúng email và mật khẩu đăng nhập sẽ gửi trangreturn redirect("hocsinh"); else // kiểm tra không đúng sẽ hiển thị thông báo lỗiSession::flash("error", "Email hoặc mật khẩu không đúng!");return redirect("login");Đến đây chức năng đăng nhập sẽ hoàn thành. Vì chưng cơ sở tài liệu được chế tạo không tài giỏi khoản như thế nào nên họ sẽ viết tiếp form đk thành viên.

Chúng ta vẫn viết form đăng ký thành viên trong thư mục "resources/views/auth" tên file là "register.blade.php" với câu chữ đoạn code như sau:


extends("templates.master")
section("title","Trang cai quản lý")
section("content")
if ( Session::has("success") )
Session::get("success") ×Close
endif
if ( Session::has("error") )
Session::get("error") ×Close
endif
if ($errors->any())