概述
在开发中,我们经常会遇到多种类型的用户的认证问题,比如后台的管理员和前台的普通用户。Laravel 5.3 内置的 Auth 组件已经能很好的满足这项需求,下面大概记录下使用方法。
另外,后台页面常常需要登录才能访问,为了完成类似的功能,大家一般都习惯创建新的中间件来实现。但是 Auth 组件已经存在类似的中间件,我们可以在已有的基础上进行完善,具体请看 后台认证
-> 登陆才能访问后台的功能的一种实现方法
。
注意:这里我们只考虑管理员和普通用户存放在不同的表中的情况
创建项目
创建项目 E:\PhpStormProjects>composer create-project --prefer-dist laravel/laravel blog
进入项目 E:\PhpStormProjects>cd blog
运行项目 E:\PhpStormProjects\blog>php arstisan serve
看看效果 浏览器访问http://localhost:8000
项目配置
数据库配置 .env
中配置 DB 相关选项即可
前台认证
数据库迁移 E:\PhpStormProjects\blog>php artisan migrate
生成 Auth E:\PhpStormProjects\blog>php artisan make:auth
该命令应该在新安装的应用下使用,它会生成 layout 布局视图,注册和登录视图,以及所有的认证路由,同时生成 HomeController ,用来处理登录成功后会跳转到该控制器下的请求。
浏览器访问 http://localhost:8000
我们看到右上角多了 LOGIN 和 REGISTER 的链接,我们可以试着注册和登陆。
至此,前台认证完成。
后台认证
后台首页显示
生成后台首页控制器 E:\PhpStormProjects\blog>php artisan make:controller Admin/IndexController
建立后台首页的视图 resources/views/admin/index.blade.php
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>首页 | 后台系统</title>
</head>
<body>
<h3>首页</h3>
</body>
</html>
后台首页控制器 app/Http/Controllers/Admin/IndexController.php
添加方法
public function index()
{
return view('admin/index');
}
路由文件 routes/web.php
添加路由组
Route::group(['prefix' => 'admin'], function () {
Route::get('/', 'Admin\IndexController@index');
});
浏览器访问 http://localhost:8000/admin
可看到后台首页
后台首页显示完成
管理员数据表生成、数据表模型建立以及数据表填充
生成管理员数据表迁移文件 E:\PhpStormProjects\blog>php artisan make:migration create_administrators_table
修改 database/migrations/*_create_administrators_table.php
中的 up() 与 down() 方法
public function up()
{
Schema::create('administrators', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
public function down()
{
Schema::drop('administrators');
}
生成数据表 E:\PhpStormProjects\blog>php artisan migrate
至此,数据表建立
生成数据表模型 E:\PhpStormProjects\blog>php artisan make:model Models/Administrator
修改 app/Models/Administrator.php