這部份在Django時,明明是最先學的,在Laravel卻放到了最後☺
要使用Laravel提供的會員系統,相當容易,只須要:
artisan make:auth
artisan migrate
然後瀏覽http://localhost/register 註冊帳號,或是http://localhost/login 登入帳號。仔細一看,會多了這些檔案:
new file: app/Http/Controllers/HomeController.php
new file: resources/views/auth/login.blade.php
new file: resources/views/auth/passwords/email.blade.php
new file: resources/views/auth/passwords/reset.blade.php
new file: resources/views/auth/register.blade.php
new file: resources/views/auth/verify.blade.php
new file: resources/views/home.blade.php
new file: resources/views/layouts/app.blade.php
modified: routes/web.php
其中routes/web.php
多了:
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
現在瀏覽http://localhost/home 也有畫面了。
在知道哪些檔案被加入後,也可以很容易的知道怎麼修改頁面。是的,就是修改resources/views/auth/
裡的模板。還有home.blade.php
。當然,如果你喜歡Laravel預設的排版的話,也可以將繼承改成:
@extends('layouts.app')
帳號相關的操作都在Auth
,像是你可以這樣取得此次連線中登入的帳號:
use Illuminate\Support\Facades\Auth;
// 取得帳號
$user = Auth::user();
// 取得ID
$id = Auth::id();
用Auth::check()
檢查是否登入了。
use Illuminate\Support\Facades\Auth;
if (Auth::check()) {
// The user is logged in...
}
或是用Auth::attempt()
手動檢查
if (Auth::attempt(['email' => $email, 'password' => $password])) {
// pass
return redirect()->intended('dashboard');
}
直接允許登入使用特定帳號:
Auth::login($user);
// or
Auth::login($user, true);
強置清除登入資訊:
Auth::logout();
Laravel的身份驗證機制可以很簡單的使用,但也有非常豐富的用法。甚至有提供OAuth2、API驗證的方式。更多可以參考: