日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

后盾网lavarel视频项目---lavarel用户认证实例

發布時間:2025/7/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 后盾网lavarel视频项目---lavarel用户认证实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

后盾網lavarel視頻項目---lavarel用戶認證實例

一、總結

一句話總結:

主要是用的Auth認證,所以配置是配置的auth(config/auth.php),控制器中調用也是用的Auth(use Auth;)

控制器核心代碼

//用戶認證$status=Auth::guard('admin')->attempt(['username'=>$request->input('username'),'password'=>$request->input('password'),]);

?

?

1、lavarel用戶認證實例步驟?

1、配置auth:config/auth.php
2、模型繼承包含auth方法的模型:use Illuminate\Foundation\Auth\User;
3、控制器中調用auth的方法進行用戶認證:$status=Auth::guard('admin')->attempt([

?

2、lavarel用戶認證的原理是什么?

lavarel把登錄要做的操作給我們封裝進了auth里面:我們需要的時候直接用就可以了

登錄操作就是去數據庫用戶表里面找用戶名,找到就查看密碼是否正確,如果正確就存入session等。
其實這些登錄操作都是一樣的,lavarel其實已經給我們做好了。

?

3、檢測用戶是否登錄的原理是什么?

用戶認證之后用戶的用戶名密碼信息等會被存入sesson,判斷用戶是否登錄的時候就判斷是否有這部分session

?

4、驗證用戶登錄的中間件的作用是根據用戶是否登錄進行跳轉,那它是如何判斷用戶是否登錄的?

根據session中是否有用戶的信息

?

?

二、lavarel用戶認證實例

登錄操作就是去數據庫用戶表里面找用戶名,找到就查看密碼是否正確,如果正確就存入session等。
其實這些登錄操作都是一樣的,lavarel其實已經給我們做好了。


?

數據表

?

?數據庫表

?

?

?

?

默認是找user表(User模型),可是我們是后臺登錄,用的是admins表,所以需要用Admin模型,所以需要重新配置模型。

?

1、配置模型(config/auth.php)

1 <?php 2 3 return [ 4 5 'defaults' => [ 6 'guard' => 'web', 7 'passwords' => 'users', 8 ], 9 10 11 'guards' => [ 12 'admin' => [ 13 'driver' => 'session', 14 'provider' => 'admins', 15 ], 16 'web' => [ 17 'driver' => 'session', 18 'provider' => 'users', 19 ], 20 21 'api' => [ 22 'driver' => 'token', 23 'provider' => 'users', 24 ], 25 ], 26 27 28 'providers' => [ 29 'admins' => [ 30 'driver' => 'eloquent', 31 'model' => \App\Model\Admin::class, 32 ], 33 'users' => [ 34 'driver' => 'eloquent', 35 'model' => App\User::class, 36 ], 37 38 ], 39 40 41 ];

看5-8行:defaults的guard默認是web,也就是16-19行中的users表,也就是33-36行的User模型(App\User::class

這不是我們需要的,所以我們添加了12-15行,也就是admins的guards,并且關聯了29-32行的Admin模型(\App\Model\Admin::class

?

2、模型(app/Model/Admin.php)

1 <?php 2 3 namespace App\Model; 4 5 use Illuminate\Database\Eloquent\Model; 6 use Illuminate\Foundation\Auth\User; 7 8 class Admin extends User 9 { 10 // 11 }

注意的是模型繼承了User模型(第6行和第8行),所以有了找表,驗證密碼等一系列用戶認證的方法

?

3、控制器中進行認證(app/Http/Controllers/Admin/EntryController.php)

1 <?php 2 3 namespace App\Http\Controllers\Admin; 4 5 use Illuminate\Http\Request; 6 use App\Http\Controllers\Controller; 7 use Auth; 8 9 class EntryController extends Controller 10 { 11 12 public function index(){ 13 return '后臺。。。。'; 14 } 15 16 /** 17 * 登錄視圖 18 * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View 19 */ 20 public function login(){ 21 return view('admin.entry.login'); 22 } 23 24 /** 25 * post處理登錄 26 */ 27 public function loginCheck(Request $request){ 28 //用戶認證 29 $status=Auth::guard('admin')->attempt([ 30 'username'=>$request->input('username'), 31 'password'=>$request->input('password'), 32 ]); 33 //dd($status); 34 if($status){ 35 //登錄成功 36 return redirect('/admin/index'); 37 }else{ 38 //登錄失敗 39 //return back()->withInput()->with('error','用戶名或密碼錯誤!'); 40 return redirect('/admin/login')->withInput()->with('error','用戶名或密碼錯誤!'); 41 } 42 } 43 }

第7行:use Auth;服務來驗證

第29行:指定guard為admin,也就是找數據庫中的admins表,也就是找模型中的Admin模型

所以第34-41行:我們只需要單純的進行成功失敗跳轉即可,別的Auth驗證都給我們做了(比如比較用戶名和密碼等)

?

4、頁面示例

登錄失敗示例

?

登錄成功示例

?

5、視圖核心代碼(resources/views/admin/entry/login.blade.php)

<div class="login-box-body"><p class="login-box-msg">極大提高學習效率的legend3</p><form action="/admin/login" method="post">{{csrf_field()}}<div class="form-group has-feedback"><input type="text" id="username" name="username" class="form-control" required placeholder="用戶名" value="{{old('username')}}"><span class="glyphicon glyphicon-phone form-control-feedback"></span></div><div class="form-group has-feedback"><input type="password" id="password" name="password" class="form-control" required placeholder="密碼" value="{{old('password')}}"><span class="glyphicon glyphicon-lock form-control-feedback"></span></div><div class="row"><div class="col-xs-8"><div class="checkbox icheck"><label><input type="checkbox"> 記住我</label></div></div><!-- /.col --><div class="col-xs-4" style="padding-top: 4px;"><button type="submit" class="btn btn-primary btn-block btn-flat">登錄</button></div><!-- /.col --></div>@if(session('error'))<div class="alert alert-danger">{{session('error')}}</div>@endif</form><hr><div><a href="{{url('/reg')}}" class="text-center">注冊</a><a href="#" style="margin-left: 15px;">忘記密碼</a><a href="" style="margin-left: 15px;">登錄遇到問題</a></div></div><!-- /.login-box-body --> </div>

?

?

?

?

?

轉載于:https://www.cnblogs.com/Renyi-Fan/p/11504127.html

總結

以上是生活随笔為你收集整理的后盾网lavarel视频项目---lavarel用户认证实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。