Laravel是一种流行的PHP框架,被广泛用于开发Web应用。本攻略将介绍如何使用Laravel框架搭建后台登录系统。
步骤1:创建Laravel应用程序
要开始使用Laravel框架,你需要在本地计算机上安装PHP和Composer。然后,使用Composer创建一个新的Laravel项目。
安装Composer后,按照以下命令创建Laravel项目:
composer create-project laravel/laravel myProject
运行该命令后,Laravel将在名为“myProject”的文件夹中创建一个新的项目。
步骤2:创建用户表
创建一个名为“users”的表,以存储用户登录信息。你可以使用以下迁移脚本创建此表:
php artisan make:migration create_users_table --create=users
运行该命令后,在/database/migrations目录中创建了一个新的迁移脚本。编辑此脚本以定义用户表的结构:
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('users');
}
}
在该迁移脚本中,我们定义了一个包含五个字段的“users”表。分别是id、name、email、password和remember_token。运行以下命令执行迁移脚本:
php artisan migrate
成功执行迁移脚本后,将在数据库中创建“users”表。
步骤3:创建用户认证功能
Laravel提供了内置的用户认证功能。我们可以使用这些功能来创建后台登录系统。运行以下命令创建用户认证功能:
php artisan make:auth
运行该命令后,Laravel将在程序中创建一个名为“Auth”的控制器和视图文件,用于处理用户认证。
步骤4:设置默认控制器
Laravel将默认控制器设置为“WelcomeController”。我们需要将默认控制器更改为Auth控制器。打开/routes/web.php文件,在文件中添加以下代码:
Route::get('/', function () {
return redirect('/login');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
在该文件中,我们在路由中添加了一个名为“home”的路由,用于显示用户登录后的主页。接下来,将“Auth”控制器设置为默认控制器。打开/app/Http/Controllers/WelcomeController.php文件,并将其编辑为以下内容:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class WelcomeController extends Controller
{
public function index()
{
if (Auth::check()) {
return redirect('/home');
}
return view('auth.login');
}
}
在该文件中,我们使用check方法检查用户是否登录。如果用户已登录,则直接重定向到主页;否则,将用户重定向到登录页面。
步骤5:测试登录
现在我们已经完成了后台登录系统的设置。只需要运行程序并测试登录功能。命令如下:
php artisan serve
Laravel将为程序启动Web服务器,并在本地主机上启动应用程序。在Web浏览器中输入http://localhost:8000/login URL地址即可在登录页面中输入凭据。
打开程序并进行登录时,你将被重定向到显示用户信息的主页。在成功登录后将在数据库中创建一个新的记录,以保存用户数据。
示例1:Laravel中添加邮箱验证
添加邮箱验证的好处是避免用户忘记Login密码时无法找回。我们可以使用Laravel内置的邮箱验证,来验证新注册用户的邮箱。
步骤1:生成邮箱验证必需的静态页面
在Laravel执行如下命令生成邮箱验证的必需的静态页面:
php artisan make:auth
步骤2:在用户表里添加email_verified_at字段
编辑2014_10_12_000000_create_users_table.php,添加email_verified_at字段:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
步骤3:在RegisterController中添加sendEmailVerificationNotification方法
打开app/Http/Controllers/Auth/RegisterController.php文件,在类中添加如下方法即可完成邮箱验证:
namespace App\Http\Controllers\Auth;
use App\Models\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
class RegisterController extends Controller
{
use RegistersUsers;
protected $redirectTo = '/home';
public function __construct()
{
$this->middleware('guest');
}
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
public function sendEmailVerificationNotification($user)
{
$user->sendEmailVerificationNotification();
}
}
示例2:自定义认证登录后的Settings页
在Auth控制器的home()方法中可以作如下操作,以实现登录后直接进入Settings页:
public function home()
{
if (Auth::guest()) {
return redirect('/login');
}
if (!empty(Auth::user()->password)) {
return redirect('/settings');
} else {
return view('auth.passwords.reset');
}
}
在Laravel控制器中,我们可以使用Auth类检查用户是否已经登录,并使用Auth::user()获取当前认证的用户对象。使用上述方法进行判断,若存在password字段,跳转到设置页面;否则,跳转到密码重置页面。在路由文件中添加settings路由,这是访问Settings页面的唯一入口:
Route::get('/settings', function () {
return view('settings');
})->middleware('auth');
Route::get('/home', 'Auth\HomeController@home')->name('home');
上述routes/web.php中home路由在我们上文中有提到,它会被重定向到Auth控制器中的home()方法中。在该方法中使用我们上面的代码进行处理,最终跳转到/settings URL访问Settings页面。
以上就是Laravel搭建后台登录系统步骤详解的完整攻略,包括了创建Laravel应用程序、创建用户表、创建用户认证功能、设置默认控制器和测试登录等步骤。同时,该攻略还提供了两个示例说明,分别介绍如何添加邮箱验证和自定义认证登录后的Settings页。若仍有疑问可以在讨论区继续交流。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Laravel搭建后台登录系统步骤详解 - Python技术站