Laravel 自帶的Auth驗(yàn)證登錄方法
在laravel有自帶的登錄驗(yàn)證。只要建立對應(yīng)的表和配置一些文件就能夠使用,無需開發(fā)者自己去實(shí)現(xiàn)登錄邏輯。
第一步:配置方面
在config下的auth.php配置guards 和 providers 。 之后新建文件和數(shù)據(jù)庫名稱要和這里的對應(yīng)。
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], //Laravel Auth 驗(yàn)證登錄 'admin' => [ 'driver' => 'session', 'provider' => 'admins', ] ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], 'admins' => [ 'driver' => 'eloquent', 'model' => App\Admin::class, ], // 'users' => [ // 'driver' => 'database', // 'table' => 'users', // ], ],
第二步:數(shù)據(jù)庫方面
1 新建admins表,作為后臺(tái)用戶表
其中remember_token 用于是否記住用戶
2 在app目錄下新建Admin.php 文件對應(yīng),文件名稱取決于配置文件中的名稱
<?php namespace App; use Illuminate\Foundation\Auth\User as Authenticatable; class Admin extends Authenticatable { protected $fillable = [ 'username', 'password', ]; protected $hidden = [ //remember_token 字段用于記住我的功能 'password', 'remember_token', ]; public static $rules = [ 'username'=>'required', 'password'=>'required' ]; }
第三步:控制器中auth的使用
Auth::guard('admin')->attempt($credentials)); 嘗試登錄 Auth::guard($guard)->guest();判斷用戶是否來賓,可用于中間件,判斷用戶是否登錄,返回false,則已經(jīng)登錄,反之,跳轉(zhuǎn)會(huì)登錄頁面 Auth::guard($guard)->user();獲取已經(jīng)登錄的用戶信息,注意在__construct()中無法獲取,可以在中間件里面獲取
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Auth; class AdminAuthMiddleware { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next, $guard = null) { //如果沒有指定的話,默認(rèn) guard 是 web, //dump(Auth::guard($guard)->check()); 判斷用戶是否認(rèn)證 //Auth::guard($guard)->user() 獲取用戶信息 //Auth::guard($guard)->guest() 是否是來賓 if(Auth::guard($guard)->guest()){ if($request->ajax() || $request->wantsJson()){ return response('Unauthorized.', 401); }else{ return redirect()->guest('admin/login'); } } return $next($request); } }
$credentials = $request->only('username', 'password'); /** * 使用laravel自帶的Auth登錄 * 1、密碼使用的是hash加密 $crypt = password_hash($password, PASSWORD_DEFAULT); */ if(Auth::guard('admin')->attempt($credentials)){ return response()->json(['code' => 200, 'msg' => '登錄成功']); }else{ return response()->json(['code' => 403, 'msg' => '用戶名或密碼錯(cuò)誤']); }
以上這篇Laravel 自帶的Auth驗(yàn)證登錄方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
php圖片水印添加、壓縮、剪切的封裝類實(shí)現(xiàn)
這篇文章主要介紹了php圖片水印添加,壓縮,剪切的封裝類實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-09-09ThinkPHP 5.x遠(yuǎn)程命令執(zhí)行漏洞復(fù)現(xiàn)
這篇文章主要介紹了ThinkPHP 5.x遠(yuǎn)程命令執(zhí)行漏洞復(fù)現(xiàn)的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09Zend Framework使用Zend_Loader組件動(dòng)態(tài)加載文件和類用法詳解
這篇文章主要介紹了Zend Framework使用Zend_Loader組件動(dòng)態(tài)加載文件和類用法,結(jié)合實(shí)例形式分析了Zend_Loader組件實(shí)現(xiàn)文件自動(dòng)加載與屬性判斷的相關(guān)使用技巧,需要的朋友可以參考下2016-12-12TP5框架實(shí)現(xiàn)自定義分頁樣式的方法示例
這篇文章主要介紹了TP5框架實(shí)現(xiàn)自定義分頁樣式的方法,結(jié)合實(shí)例形式詳細(xì)分析了TP5自定義分頁樣式相關(guān)類定義、樣式設(shè)置、配置與使用技巧,需要的朋友可以參考下2020-04-04