Laravel - 身份验证

身份验证是识别用户凭据的过程。在 Web 应用程序中,身份验证由会话管理,会话采用电子邮件或用户名和密码等输入参数来识别用户。如果这些参数匹配,则表示用户已通过身份验证。

命令

Laravel 使用以下命令创建表单和相关控制器来执行身份验证 −

php artisan make:auth

此命令有助于成功创建身份验证脚手架,如以下屏幕截图所示 −

Authentication

控制器

用于身份验证过程的控制器是 HomeController

<?php

namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Http\Request;

class HomeController extends Controller{
   /**
      * Create a new controller instance.
      *
      * @return void
   */
   
   public function __construct() {
      $this->middleware('auth');
   }
   
   /**
      * Show the application dashboard.
      *
      * @return \Illuminate\Http\Response
   */
   
   public function index() {
      return view('home');
   }
}

因此,生成的脚手架应用程序会创建用于执行身份验证的登录页面和注册页面。它们如下所示 −

登录

登录页面

注册

注册

手动验证用户

Laravel 使用 Auth 外观来帮助手动验证用户。它包括 attempt 方法来验证他们的电子邮件和密码。

考虑以下 LoginController 的代码行,其中包括用于身份验证的所有函数 −

<?php

// 身份验证机制
namespace App\Http\Controllers;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller{
   /**
      * Handling authentication request
      *
      * @return Response
   */
   
   public function authenticate() {
      if (Auth::attempt(['email' => $email, 'password' => $password])) {
      
         // Authentication passed...
         return redirect()->intended('dashboard');
      }
   }
}