Đào tạo Tin học trực tuyến

Laravel 5.6: Validated, xử lý hệ thống đăng nhập, đăng xuất, ghi nhớ đăng nhập


Trong hướng dẫn này, chúng ta sẽ thực hiện Validated Form Login đồng thời xử lý hệ thống đăng nhập, đăng xuất, ghi nhớ đăng nhập cho người quản trị Website. Ở đây, chúng ta thực hiện các công việc trên Route, Controller và View một cách chi tiết với từng thành phần cụ thể.

Click vào đây hoặc ảnh trên để xem hướng dẫn chi tiết

Phần thực hành:

Route:

<?php

Route::get('/', function () {
    return view('home.index');
});
Route::get('login', 'LoginController@login');
Route::post('login', 'LoginController@postLogin');
Route::get('logout', 'LoginController@logout');

LoginController:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Auth;

class LoginController extends Controller
{
    public function login(){
    	return view('home.login');
    }
    public function postLogin(Request $request){
    	// return dd($request);  
    	$request->validate([
    		'email'=>'required|email',
    		'password'=>'required|min:6|max:32'
    	],[
    		'email.required'=>'Bạn chưa nhập Email',
    		'email.email'=>'Email chưa đúng định dạng',
    		'password.required'=>'Bạn chưa nhập Password',
    		'password.min'=>'Password phải ít nhất 6 ký tự',
    		'password.max'=>'Password không quá 32 ký tự'
    	]); 
    	$remember = $request->has('remember') ? true : false;
    	if(Auth::attempt(['email'=>$request->email, 'password'=>$request->password], $remember)){
    		return redirect('/');
    	} else {
    		return redirect()->back()->with('thongbao', 'Đăng nhập thất bại');
    	}
    }
    public function logout(){
    	Auth::logout();
    	return redirect('/');
    }

}

View Login:

@extends('layout.master')
@section('content')
	<div class="panel panel-default">
		<div class="panel-heading">
			<h3 class="panel-title">Đăng nhập hệ thống quản trị</h3>
		</div>
		<div class="panel-body">
			<div class="col-md-7 col-md-offset-2">
				@if($errors->any())
					<div class="alert alert-danger">
						@foreach($errors->all() as $err)
							<li> {{$err}} </li>
						@endforeach
					</div>
				@endif
				@if(session('thongbao'))
					<div class="alert alert-success">
						{{ session('thongbao') }}
					</div>
				@endif

				<form action="login" method="POST">
					@csrf()
				
					<div class="form-group">
						<label for="Email">Email</label>
						<input type="email" class="form-control" name="email" placeholder="Nhập Email">
					</div>

					<div class="form-group">
						<label for="Password">Password</label>
						<input type="password" class="form-control" name="password" placeholder="Nhập Password">
					</div>

					<div class="checkbox">
						<label>
							<input type="checkbox" value="remember">
							Ghi nhớ đăng nhập
						</label>
					</div>	

					<button type="submit" class="btn btn-default pull-right">Đăng nhập</button>
				</form>
			</div>
		</div>
	</div>
@endsection

 


Bình luận

Đăng ký là thành viên để tham gia bình luận