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');
    }
}

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

登录

Login Page

注册

Register

手动验证用户


Laravel使用Auth facade来手动验证用户,它包括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])) {
      
            // 认证通过...
            return redirect()->intended('dashboard');
        }
    }
}