Authentication Trong Laravel

Authentication Trong Laravel

Trình duyệt của bạn không tương hỗ nghe audio .

Authentication theo từ điển là một hành động xác  thực một cái gì đó có được hoạt động tiếp hay không hay dừng lại. Authentication trong Laravel cũng có ý nghĩa tương tự. Vậy thì Authentication Laravel là gì và cách nó hoạt động ra sao chúng ta cùng tìm hiểu nhé! 

1. Authentication là gì?

Authentication (Xác thực) là quá trình xác định thông tin đăng nhập của người dùng. Trong các ứng dụng web, xác thực được quản lý bởi các phiên lấy các tham số đầu vào như email hoặc tên người dùng và mật khẩu để nhận dạng người dùng. Nếu các thông số này khớp, người dùng được cho là đã được xác thực.

Bạn đang đọc: Authentication Trong Laravel

2. Authentication trong Laravel.

Authentication trong Laravel cũng có tính năng xác nhận như vậy thế nhưng nó hoạt động giải trí như thế nào tất cả chúng ta cùng xem xét ở phần dưới nhé. Đầu tiên những bạn hãy mở tệp tin auth.php theo đường dẫn config / auth.php ra và xem :

 [
        'guard' => 'web',
        'passwords' => 'users',
    ],
    /*
    |--------------------------------------------------------------------------
    | Authentication Guards
    |--------------------------------------------------------------------------
    |
    | Next, you may define every authentication guard for your application.
    | Of course, a great default configuration has been defined for you
    | here which uses session storage and the Eloquent user provider.
    |
    | All authentication drivers have a user provider. This defines how the
    | users are actually retrieved out of your database or other storage
    | mechanisms used by this application to persist your user's data.
    |
    | Supported: "session", "token"
    |
    */
    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],


        'api' => [
            'driver' => 'token',
            'provider' => 'users',
            'hash' => false,
        ],
    ],
    /*
    |--------------------------------------------------------------------------
    | User Providers
    |--------------------------------------------------------------------------
    |
    | All authentication drivers have a user provider. This defines how the
    | users are actually retrieved out of your database or other storage
    | mechanisms used by this application to persist your user's data.
    |
    | If you have multiple user tables or models you may configure multiple
    | sources which represent each model / table. These sources may then
    | be assigned to any extra authentication guards you have defined.
    |
    | Supported: "database", "eloquent"
    |
    */
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],


        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],
    /*
    |--------------------------------------------------------------------------
    | Resetting Passwords
    |--------------------------------------------------------------------------
    |
    | You may specify multiple password reset configurations if you have more
    | than one user table or model in the application and you want to have
    | separate password reset settings based on the specific user types.
    |
    | The expire time is the number of minutes that the reset token should be
    | considered valid. This security feature keeps tokens short-lived so
    | they have less time to be guessed. You may change this as needed.
    |
    */
    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
            'throttle' => 60,
        ],
    ],

Đoạn code dài vãi phải không nào thế nhưng chú thích là hầu hết tất cả chúng ta chỉ cần tập trung chuyên sâu vào đoạn code sau

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

Đây chính là đoạn xác lập phương pháp, và nguồn tài liệu được lấy ra để xác nhận trong Laravel .

Giải thích đoạn code trên:

  • Driver: Thiết lập xác định phương thức lấy thông tin người dùng để xác thực, mặc định sử dụng eloquent, tuy nhiên còn một sự lựa chọn khác là database và thậm chí chúng ta cũng có thể tạo thêm một driver của riêng mình.
  • Model: Thiết lập nguồn dữ liệu lấy ra từ đâu.Mặc định Laravel chọn là moder User (local: App\User.php). Thông số này bạn có thể chỉnh thành name model của bạn.

3. Tạo Auth Login Trong Laravel.

Ở những bản Laravel 6 x trở lại trước tất cả chúng ta thường dùng lệnh sau để tạo Auth Login Trong Laravel

php artisan make:auth

Thế nhưng từ bản 6 x trở về sau nếu sử dụng lệnh này luôn tất cả chúng ta sẽ gặp lỗi Command ” make : auth ” is not defined .

Lý do là thiếu thư viện kèm theo. Vì vậy trước khi chạy lệnh này tất cả chúng ta phải thiết lập thư viện kèm theo bằng cách chạy lệnh

composer require laravel/ui --dev

Sau đó bạn cần thực thi 1 trong những lệnh sau ( tùy theo stack của bạn ) để để render ra view mặc định của laravel .

php artisan ui:auth
php artisan ui bootstrap --auth
// hoặc
php artisan ui vue --auth
//hoặc
php artisan ui react --auth

Trong đó bootstrap, vue hay react là UI stack mà bạn chọn. Ví dụ ở đây mình sử dụng bootstrap .

Đương nhiên tất cả chúng ta cũng cần chạy migrations để tạo db cho app. Mục đích cái này là render table user để Giao hàng cho những tính năng tương quan auth

php artisan migrate

Sau đó truy vấn vào project tất cả chúng ta sẽ thấy giao diện sau :

Click vào từng nút tất cả chúng ta sẽ được điều chuyển đến những form đăng nhập, ĐK. Những form này đều được validate khá đầy đủ luôn nha .Các bạn cứ thử ĐK một users, đăng nhập vào mạng lưới hệ thống rồi vào database xem có gì ở bảng users nhé !

4. Lời Kết.

Đây chỉ là authentication trong Laravel mặc đinh vì còn khá sơ sài thế nhưng nếu muốn thay đổi 1 số thứ thì sao. Chúng mình hẹn gặp nhau trong bài tiếp theo nha. Cảm ơn các bạn đã theo dõi.