Laravel 自帶的Auth驗證登錄方法
在laravel有自帶的登錄驗證。只要建立對應的表和配置一些文件就能夠使用,無需開發(fā)者自己去實現(xiàn)登錄邏輯。
第一步:配置方面
在config下的auth.php配置guards 和 providers 。 之后新建文件和數(shù)據(jù)庫名稱要和這里的對應。
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], //Laravel Auth 驗證登錄 '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表,作為后臺用戶表

其中remember_token 用于是否記住用戶
2 在app目錄下新建Admin.php 文件對應,文件名稱取決于配置文件中的名稱
<?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)會登錄頁面
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)
{
//如果沒有指定的話,默認 guard 是 web,
//dump(Auth::guard($guard)->check()); 判斷用戶是否認證
//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' => '用戶名或密碼錯誤']);
}
以上這篇Laravel 自帶的Auth驗證登錄方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
使用laravel的migrate創(chuàng)建數(shù)據(jù)表的方法
今天小編就為大家分享一篇使用laravel的migrate創(chuàng)建數(shù)據(jù)表的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
關于Laravel-admin的基礎用法總結(jié)和自定義model詳解
今天小編就為大家分享一篇關于Laravel-admin的基礎用法總結(jié)和自定義model詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
ThinkPHP實現(xiàn)跨模塊調(diào)用操作方法概述
使用 $this 可以調(diào)用當前模塊內(nèi)的方法,但是很多情況下經(jīng)常會在當前模塊中調(diào)用其他模塊的方法。這篇文章主要介紹了ThinkPHP跨模塊調(diào)用操作,需要的朋友可以參考下2014-06-06

