Trong ví dụ này, bạn sẽ học laravel 8 multi auth. tôi muốn chia sẻ với bạn laravel 8 multi auth. Bài đăng này sẽ cung cấp cho bạn ví dụ đơn giản về xác thực nhiều lần trong laravel 8
tôi đã giải thích đơn giản từng bước xác thực nhiều lần trong laravel 8
Tôi đã viết nhiều bài hướng dẫn về multi authentication trong laravel. trong hướng dẫn này, chúng tôi sẽ tạo nhiều xác thực theo cách rất đơn giản bằng cách sử dụng phần mềm trung gian với một bảng. nếu bạn muốn tạo nhiều xác thực bằng cách sử dụng bảo vệ, bạn có thể làm theo hướng dẫn này. Ví dụ về multi auth của Laravel sử dụng Auth guard từ đầu và nếu bạn muốn tạo nhiều xác thực với laravel bằng vai trò và phần mềm trung gian thì bạn có thể làm theo hướng dẫn này. Laravel 5 - Kiểm soát truy cập người dùng đơn giản bằng Middleware
Tuy nhiên, trong ví dụ này, chúng tôi sẽ tạo một cách rất đơn giản và bạn có thể dễ dàng sử dụng với ứng dụng laravel 8 của mình. vì vậy hãy làm theo bước này
Bước 1. Cài đặt Laravel 8
trước hết chúng ta cần tải ứng dụng phiên bản Laravel 8 mới bằng cách sử dụng lệnh dưới đây, Vì vậy, hãy mở dấu nhắc lệnh terminal OR của bạn và chạy lệnh dưới đây
composer create-project --prefer-dist laravel/laravel blog
Bước 2. Cấu hình cơ sở dữ liệu
Trong bước thứ hai, chúng ta sẽ tạo cấu hình cơ sở dữ liệu ví dụ tên cơ sở dữ liệu, tên người dùng, mật khẩu, v.v. cho ứng dụng laravel 8 thô sơ của chúng ta. Vì vậy, hãy mở. env và điền vào tất cả các chi tiết như dưới đây
env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name(blog)
DB_USERNAME=here database username(root)
DB_PASSWORD=here database password(root)
Bước 3. Cập nhật Migration và Model
Trong bước này, chúng ta cần thêm hàng mới "is_admin" trong bảng người dùng và mô hình. hơn chúng ta cần để chạy di chuyển. vì vậy hãy thay đổi điều đó trên cả hai tệp
cơ sở dữ liệu/di chuyển/000_create_users_table. php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email');
$table->timestamp('email_verified_at')->nullable();
$table->boolean('is_admin')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}
ứng dụng/Mô hình/Người dùng. php
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
use HasFactory, Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password', 'is_admin'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
Bây giờ chúng ta cần chạy migration
vì vậy hãy chạy lệnh dưới đây
php artisan migrate
Bước 4. Tạo Auth bằng giàn giáo
Bây giờ, trong bước này, chúng tôi sẽ tạo lệnh giàn giáo xác thực để tạo thông tin đăng nhập, đăng ký và bảng điều khiển. vì vậy hãy chạy các lệnh sau
Gói giao diện người dùng Laravel 8
composer require laravel/ui
tạo xác thực
php artisan ui bootstrap --auth
npm install
npm run dev
Bước 5. Tạo phần mềm trung gian IsAdmin
Trong bước này, chúng tôi yêu cầu tạo phần mềm trung gian quản trị sẽ chỉ cho phép người dùng truy cập quản trị viên vào các tuyến đường đó. vì vậy hãy tạo người dùng quản trị theo các bước sau
php artisan make:middleware IsAdmin
ứng dụng/Http/phần mềm trung gian/IsAdmin. php
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name(blog)
DB_USERNAME=here database username(root)
DB_PASSWORD=here database password(root)
0ứng dụng/Http/Kernel. php
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name(blog)
DB_USERNAME=here database username(root)
DB_PASSWORD=here database password(root)
1Bước 6. Tạo tuyến đường
Ở đây, chúng ta cần thêm một tuyến nữa cho trang chủ của người dùng quản trị, vì vậy hãy thêm tuyến đó vào web. tập tin php
tuyến đường/web. php
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name(blog)
DB_USERNAME=here database username(root)
DB_PASSWORD=here database password(root)
2Bước 7. Thêm phương thức trên bộ điều khiển
Ở đây, chúng ta cần thêm phương thức adminHome() cho tuyến quản trị trong HomeController. vì vậy hãy thêm như dưới đây
ứng dụng/Http/Bộ điều khiển/HomeController. php
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name(blog)
DB_USERNAME=here database username(root)
DB_PASSWORD=here database password(root)
3Bước 8. Tạo tập tin Blade
Ở bước này chúng ta cần tạo file blade mới cho admin và cập nhật cho file blade người dùng. vì vậy hãy thay đổi nó
tài nguyên/lượt xem/trang chủ. lưỡi. php
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name(blog)
DB_USERNAME=here database username(root)
DB_PASSWORD=here database password(root)
4tài nguyên/lượt xem/adminTrang chủ. lưỡi. php
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name(blog)
DB_USERNAME=here database username(root)
DB_PASSWORD=here database password(root)
5Bước 9. Cập nhật trên LoginController
Trong bước này, chúng tôi sẽ thay đổi trên LoginController, khi người dùng sẽ đăng nhập thì chúng tôi chuyển hướng theo quyền truy cập của người dùng. nếu người dùng bình thường hơn chúng tôi sẽ chuyển hướng đến tuyến đường gia đình và nếu người dùng quản trị viên hơn chúng tôi sẽ chuyển hướng đến tuyến đường quản trị viên. vì vậy hãy thay đổi
ứng dụng/Http/Bộ điều khiển/Auth/LoginController. php
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name(blog)
DB_USERNAME=here database username(root)
DB_PASSWORD=here database password(root)
6Bước 10. Tạo Seeder
Chúng tôi sẽ tạo seeder để tạo quản trị viên mới và người dùng bình thường. Vì vậy, hãy tạo seeder bằng lệnh sau