Thumbnail
Category: Laravel

Authentication của laravel

Date: March 9, 2020
67 views

1. Auth là gì?

Tiếp theo là một điều khá quan trọng trong Laravel đó là Auth, vậy Auth là gì? Hiểu đơn giản Auth là phần liên quan đến đăng nhập, đăng ký, reset password mà Laravel tạo sẵn cho chúng ta.

Auth là gì

2. Cài đặt

Với các phiên bản trước Laravel 6 thì để tạo Auth ta sử dụng lệnh:


php artisan make:auth

Với phiên bản Laravel 6 thì chúng ta không cần chạy lệnh phía trên nhé vì Laravel 6 đã tạo sẵn cho chúng ta. Tiếp theo ta cài thêm thư viện để có view trỏ đến.


composer require laravel/ui "^1.2"
//từ laravel 5.8 trở lên mới cài được nhe

Sau đó bạn chạy thêm lệnh này để render ra view mặc định của laravel.


php artisan ui vue --auth

Nếu chưa chạy tạo cơ sở dữ liệu lần nào thì chạy code dưới đây nhé.


php artisan migrate

Cài đặt Authentication

Tiếp theo là bạn phải sửa đường dẫn link style, link javasript và thêm link bootstrap. Để đơn giản bạn copy code bên dưới và vào file resources/views/layouts/app.blade.php replace lại phần head nhé!


<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
​
    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">
​
    <title>{{ config('app.name', 'Laravel') }}</title>
​
    <!-- Scripts -->
    <script src="{{ asset('resources/js/app.js') }}" defer></script>
​
    <!-- Fonts -->
    <link rel="dns-prefetch" href="//fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
​
    <!-- Styles -->
    <link href="{{ asset('resources/sass/app.scss') }}" rel="stylesheet">
​
    <!-- Bootstrap -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>

3. Kết Quả

Giao diện mặc định.

Authentication của laravel là gì

Giao diện đăng ký.

Authentication của laravel hoạt động như thế nào

Giao diện đăng nhập

Authentication của laravel 6

Giao diện reset password

hướng dẫn Authentication của laravel

4. Sử dụng

Khai báo use Illuminate\Support\Facades\Auth; để có thể sử dụng Auth.


$id = Auth::user()->id; //Lấy về ID người .
$user = Auth::user() // Lấy về tất cả các thông tin của người dùng.
$email = Auth::user()->email // Lây về email người dùng.

Muốn kiểm tra người dùng đăng nhập chưa ta sử dụng:


use Auth
//khai báo trên class lệnh trên mới sử dụng được nhé!
  
if (Auth::check()) {
     return (Auth::user()->email);
}

5. Tùy chỉnh Authentication

Tùy chỉnh Authentication

5.1 Tắt tính năng Registration

Mình có sử dụng các chèn code vào file routes/web.php


Auth::routes(['register' => false]);

Nhưng nó không hoạt động trong dự án của mình. Do đó mình sử dụng tính năng này bằng cách ghi đè route đó.


Route::match(['get', 'post'], 'register', function(){
    return redirect('/');
});

Điều này áp dụng được cho cả reset password nhé.

5.2 Thay đổi chuyển hướng trang của Authentication Laravel 6 mặc định

Bạn vào App\Http\Controller\Auth\LoginController.php và thay đổi thuộc tính redirectTo


protected $redirectTo = '/trang-admin';

File trên là thay đổi chuyển hướng login nếu bạn muốn chuyển hướng đăng ký hay reset password thì vào controller tương ứng nhé.

5.3 Tùy chỉnh thêm các thuộc tính và validate form đăng ký

Mình đọc được một bài viết khá hay, khá đầy đủ về vấn đề này. https://toidicode.com/authentication-trong-laravel-register-48.html

5.4 Thay đổi email đăng nhập thành một trường bất kì

Bước 1: Tạo thêm một function trong App\Http\Controller\Auth\LoginController.php. Nói tạo thêm chớ thực ra là nó ghi đề lại hàm đã được định nghĩa trong lớp AuthenticatesUsers.


public function username()
{
    return 'id';
}
​
//id là tên cột mình thay đổi cho email, các bạn thay thế theo nhu cầu của mình (username,...).

Bước 2: Vào App\Http\Providers\User.php để thêm cột đó vào model của mình.


protected $fillable = [
        'name', 'email', 'password', 'id'
];

Bước 3: Chỉnh sửa mã nguồn view. Bạn thay thế những gì có từ email thành tên trường của bạn.

Tùy chỉnh Authentication trong laravel

  • Màu xanh: là bạn thay thế thành tên trường của bạn
  • Màu vàng: là bạn thay thế thành tiêu đề hiện bên trái thanh nhập liệu (Mình quên thay thành id rồi nếu làm theo bạn sửa thành id dùm mình nhé)
  • Màu đỏ: là bạn thay thế hành kiểu của khung nhập.

Kết quả:

Hướng dẫn tùy chỉnh Authentication trong laravel

6. Kết luận

Như vậy mình đã hướng dẫn các bạn sử dụng Auth trong Laravel, cũng khá đơn giản phải không. Có thắc mắc gì các bạn để lại bình luận bên dưới nhé. Bài viết sau mình sẽ hướng dẫn các bạn Queue trong Laravel.


Copyright © 2025 All Right Reserved