Chức năng xác thực trong laravel 6.x - Authentication

Post Reply
User avatar
stararound
Posts: 22
Joined: Wed Apr 17, 2019 1:29 pm

Chức năng xác thực trong laravel 6.x - Authentication

Post by stararound »

Chức năng xác thực là gì?

Hiểu đơn giản là chức năng cho phép người dùng có thể đăng nhập (login), đăng ký (register), phục hồi mật khẩu (reset password)...

Các bước cài đặt
  • Cài đặt framework
  • Tạo view tương ứng các chức năng auth
  • Tạo CSS cho các view tương ứng
  • Tạo database lưu trữ thông tin users
  1. Cài đặt framework

    Đảm bảo đã cài đặt PHP bản mới nhất, nếu phiên bản PHP thấp hơn bản mới nhất thì có thể sẽ ảnh hưởng đến phiên bản laravel khi thực hiện lệnh tạo project.

    Đảm bảo đã cài đặt composer vì chúng ta dùng lệnh composer để cài. Nếu chưa cài làm theo hướng dẫn cài đặt ở đây: Install composer

    Mở Terminal và gõ lệnh sau:

    Code: Select all

    composer create-project --prefer-dist laravel/laravel newblog
    #Chú ý: trong câu lệnh trên, newblog là tên project bạn sẽ sửa theo tên project của bạn muốn tạo
    
    Cài đặt xong framework laravel sẽ ở phiên bản mới nhất. Nếu PHP ở phiên bản 7.2.x chẳng hạn thì rất có thể project laravel bạn tạo sẽ là phiên bản 5.x.x
  2. Tạo view tương ứng các chức năng auth

    Ở bản 6.x laravel đã có sẵn các controller cũng như model sẵn, nhưng chưa có view, ta thực hiện cài thư viện cho nó lần lượt bằng 2 lệnh sau:

    Code: Select all

    composer require laravel/ui --dev
    #lệnh này để cài đặt thư viện UI cho project
    
    php artisan ui vue --auth
    #lệnh này để tạo view mặc định của laravel
    
    Đến đây bạn có thể chạy web lên được rồi nhưng giao diện chưa có css nên khá lởm, vì thế cần css cho các view, ta qua bước tiếp theo.
  3. Tạo CSS cho các view tương ứng

    Để tạo ra css đã được code bằng scss sẵn trong thư mục resources thì ta chạy lần lượt 2 lệnh sau:

    Code: Select all

    npm install
    #hãy chú ý: chạy được lệnh này khi trong máy bạn đã cài nodejs, nếu chưa cài thì vào nodejs.org xem hướng dẫn cài đặt.
    
    npm run dev
    #lệnh này để tạo file css cho các view tương ứng, đặt trong thư mục public được gen từ file các cscc đã có trong thư mục resources
    
  4. Tạo database lưu trữ thông tin users

    Việc quan trọng là phải có bảng users để lưu thông tin người dùng, do đó cần tạo database cho project của bạn:
    1. trước hết cần tạo DB: ví dụ ở đây dùng mysql - vào phpmyadmin để tạo 1 db của project - và nắm được các db_name, user_name, db_pwd.
    2. update file .env trong project: tìm tương ứng và update phù hợp DB info của bạn ở các biến DB_DATABASE, DB_USERNAME, DB_PASSWORD.

    Code: Select all

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=db_name
    DB_USERNAME=user_name
    DB_PASSWORD=db_pwd
    
    Cuối cùng chạy lệnh sau để render table user cho các chức năng liên quan authentication.

    Code: Select all

    php artisan migrate
    Như vậy ta đã hoàn tất việc cài đặt chức năng auth cơ bản mà laravel đã cung cấp cho developer rồi, quá tiện lợi phải không :D

    Truy cập vào đường link localhost/newblog/public tương ứng của bạn để xem kết quả và khám phá được rồi đấy.

    Đến đây bạn có thể khám phá tiếp tục các chức năng authentication rồi đó. Bạn có thể tham khảo trên trang chủ của larvel.com:
    Cài đặt: https://laravel.com/docs/6.x#installation
    Tạo chức năng auth: https://laravel.com/docs/6.x/authentication
    Biên dịch css, js, xử dụng vue, react...: https://laravel.com/docs/6.x/mix
Remove public trên url khi chạy trang web laravel:

Để chạy được trang web mà không phải gõ vào url /public, khi bạn đưa web lên internet, ví dụ bạn muốn chạy với url là: share1s.net thay vì share1s.net/public thì phải làm thế nào? Xử lý bằng cách sau - tham khảo https://stackoverflow.com/questions/283 ... c-from-url
  • copy file .htaccess trong thư mục public vào thư mục root.
  • update nội dung file .htaccess ở root như sau:

    Code: Select all

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews -Indexes
        </IfModule>
    
        RewriteEngine On
    
        RewriteCond %{REQUEST_FILENAME} -d [OR]
        RewriteCond %{REQUEST_FILENAME} -f
        RewriteRule ^ ^$1 [N]
    
        RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
        RewriteRule ^(.*)$ public/$1 
    
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ server.php
    </IfModule>
    

Post Reply