后盾网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)

 <?php

 return [

     'defaults' => [
'guard' => 'web',
'passwords' => 'users',
], 'guards' => [
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'web' => [
'driver' => 'session',
'provider' => 'users',
], 'api' => [
'driver' => 'token',
'provider' => 'users',
],
], 'providers' => [
'admins' => [
'driver' => 'eloquent',
'model' => \App\Model\Admin::class,
],
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
], ], ];

看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)

 <?php

 namespace App\Model;

 use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User; class Admin extends User
{
//
}

注意的是模型继承了User模型(第6行和第8行),所以有了找表,验证密码等一系列用户认证的方法

3、控制器中进行认证(app/Http/Controllers/Admin/EntryController.php)

 <?php

 namespace App\Http\Controllers\Admin;

 use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth; class EntryController extends Controller
{ public function index(){
return '后台。。。。';
} /**
* 登录视图
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function login(){
return view('admin.entry.login');
} /**
* post处理登录
*/
public function loginCheck(Request $request){
//用户认证
$status=Auth::guard('admin')->attempt([
'username'=>$request->input('username'),
'password'=>$request->input('password'),
]);
//dd($status);
if($status){
//登录成功
return redirect('/admin/index');
}else{
//登录失败
//return back()->withInput()->with('error','用户名或密码错误!');
return redirect('/admin/login')->withInput()->with('error','用户名或密码错误!');
}
}
}

第7行:use Auth;服务来验证

第29行:指定guard为admin,也就是找数据库中的admins表,也就是找模型中的Admin模型

所以第34-41行:我们只需要单纯的进行成功失败跳转即可,别的Auth验证都给我们做了(比如比较用户名和密码等)

4、页面示例

登录失败示例

登录成功示例

aaarticlea/gif;base64,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yCar7LLMNuvss9BGK+201FZr7bXYZqvtttx26+234IYr7rjklmvuueimq+667Lbr7rvwxivvvPTWa++9+Oar77789uvvvwAHLPDABBds8MEIJ6zwwgw37PDDEEcs8cQUV2zxxRhnrPHGHHfs8ccghyzyyCSXbPLJKKes8sost+zyyzDHLPPMNNds880456zzzjz37PPPQAct9NBEF2300UgnrfTSTDft9NNQRy311FRXbfXVWGet9dZcd+3112CHLfbYZJdt9tkxBdATrwEYsLauARzh9q5xy/32rXXbnWveeuP/XdDctvItEOC0Cj743bEa/hThiSM0BOOvKi6QEAbMmrdUchugeeWy1m0EACPIHXqtcX+ewwA+oU666UccgEPro89qAABr5yDAETyonusBPBxBwK5CCICADmgXb/zxyCev/PLMN+/889BHL/301Fdv/fXYZ6/99tx37/334Icv/vjkl2/++einr/767Lfv/vvwxy///PTXb//9+Oev//789+///wAMoAAHSMACGvCACEygAhfIwAY68IEQjKAEJ0jBClrwghjMoAY3yMEOevCDIAyhCEdIwhKa8IQoTKEKV8jCFrrwhTCMoQxnSMMa2vCGOMyhDnfIwx768IdADKIQ/4dIICEY8YhITKISl8jEJjrxiVCMohSfqBheDUE0uxoC5niFRV11MVdfLBINEkDGMprxBAMpggdacJAgbIAIAimCBVRQEBtoAI5HeAEbDQIDB4gkCBLYo0XCmKQgUAAIBIGBGReZgAYQ4QJm7IAZ/ajGFkDSjAsQ5BH6+MdAHiEIEEgAAxAZEUIiyZCkLMgF6GgQGjRgBmi0wQR+8AFSypGVAtHjQTgZEkC2oAi1PMIF/FhKJqHyk4c0iB3heExkIhIGKoDmEWxQAoFAc5m51ORAeAkSXxLElXh8iCmHdExQlnGUR7ilQJo5zQcwkozoNKQM3klMaxJzjAnIpEAuyf8BT8qRjH4EZArc6ch9llGfA7kAGglizgQs1CDjFFI5k5lIBvgglJjUpjQJYoMHFHQg7LTnNO84zQkAAQYFhYE+V7nPE4DSkaCkI0rhSAN9dtShBQHlQxES0SBNNJXtRKcz14nRdzbSBSnQQA3cuciPbtKPijwoC+a4zkA2FKDeFOYJ1PlJT27TqeBcSE+B9FOCvGAFFA2pQYCZSmyClKLbhGo900nVrrYgq1Xdo0K5ile7DiSsChnrj8rK0LTC9ZJGjeUdw6pWTtogAmwMggmEmdKVEjMGd/WqQikLR5W2gJrWdKQcXQoBOgYBBTEd7SYLYMxkqrWZah1jQdk6EGxagrax94QnIv+ZgH6ykbdozOpmeevbTeqWrrF05yhTawE0woC1SrKAUckIUwpU4J1OFeZxBeJWfM4VIrIEqkoEuycasHKYLyHvni6Z3ZWo11XvbVV8WTXfGgUEACH5BAANAAAALK4BkAETAC0AhwsLGBgYJCgoNCwsODMzP0JDTUtMV2FibLKzucLCycjJzM7O0tbW2OLi5Ojo6vPz9v7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiPACEIHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePBQMoiBigwMiHASCYRClwZcOULU8uhBmTIc2aCm/iRKhzp8GeEB64/InQwVCCQAU2KHCQ5oOWBaIyJRoUAAKVVxOmfABAwQAIDb5q5TrSQAIIBrIeLNBVoAIBEBiIbWiAAQQCDxsIOLBAYEAAIfkEAA8AAAAstQGqARAAHgCHCwsYGBgkKCg0LCw4MzM/QkNNS0xXYWJssrO5wsLJyMnMzs7S1tbY4uLk6Ojq8/P2/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIMAIQgcSLCgwYMIEypcyLChw4cQI0pMGECBwwAFLDIMACHjRoEeFXIEqRHhSJIUC4Y0eHLgSoItXZYcGFPgg5cQagp08FKnwAYFYA58ALKA0aA0bQJA0JEpSwgPACgYAKEBVZZRLRpIAMGAU4IFpApUIAACg6sKDTCAQIBhAwEHFggMCAAh+QQADAAAACyFAHYCdwAWAIeQgmCQkpOQkqSQkrWhkpOykpOhkqShkrWykqSykrWys5Oys7WQosyQs9yhosyhs9yyosyys9yhy8yhy+2y3P/KopPcs5PKoqTKorXQs6Tcs6Tc3LXty6Tty7Xt3LX/3LXK3MzKy+3K7dzc/9zK7e3K7f/c/+3c///t7cz/7cz//9zo6Ojt/////+3y8vL+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/wBXCBxIsKDBgwgTKlzIsKHDhS5eSJxIsaLFixgzatzIsaPHji5WfBxJsqTJkyAjolzJsqVLiSJfypxJ82LMmjhzsrz5IYDPn0AnTGxxocRFFRBYSGxRgULFFA6UvtBg1CKHBjpfqEBQdeXNiioSnKDIAajZAAxYWAC6AChWoiXWAhXQ9cXVrFuNqigQYMBYkl8phv1b0YJTix8YeBCa4oAJDH+ZHpZI9eJdnXlbQH5hAStgwWK1hn4aVfTfwXYpcHCa4oHE1VClVrbqOWdeiomlfvyKeu9Pvy8kS0QtMQWBsz6Bh92AvLZdzz0D0JUoVwLX4BV8Yt0K4nha6j+nT/+0IFQw3wDlLfIOTXwihwEjzoevm/opge8T27/GGvtF4xMcfMfBdIZRN8Feae3lVIBKfTCdceiBVUB6GK03ln7GAWfacPIhx0AGIDiAwnFm4fecXXOR0NRwXPn2UwO3cTaBcFpd556JuW1k4YYTaSDCaPpZpBlh/eU3mntYXbbUijWWECOLVZFH45NNTpSjRjsGSVx7ciEXYWw5BnlXCgboFQFnAhLoWQdO2kgemkoNWEJrr6XF1IEFOKVCCAreaRcAoF145HBADvpCT98NOVF/dIoJXXJjMeWTdUZJGmGMb1pKKYp9RVoBY8f51eenf06UnZdosRCWAh7qxhmki5Yqdqh2J/2XFUeB3erSB4d1pquOv9Ikl4nBqlfsscXmiuyyNCnL7LMtrRAQACH5BAAPAAAALIUAdgJ3ABYAh+bj2+bm5+bm7Ozm5+3m7O7u5+7u7ubr9err9Orz9Oz1/fXs5/Tr6/f37vz06/P39PPz+/X99/X9/v799v7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj/ACkIHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypEMHAVKqXKmAIAMJBycgILigJUGZA18edHBA5AQCMEH+DCoQ5cqjPResNLCyJ4WXSlcKIEqBp0+gFCYMCDB149CDNXcecNByqE6BYXNSHWg15FedC5xW/Pq1IM6sWPHCJEs268yqCu4+XVtU7se6hS/S3ZqyK4W0iLUeVdn1Z4PJAQy3Neo4aoK8UXv+fLBVblSuVNMOlBzA5kK6edkKiMCY8tq+NwcY1lvQ6t2hm7umralV9ICWwWFKdi1QK3OGsKlqdVyXNebMDB4gsK5Sc0+jjSVAowbK/UDdsOOptk0MMbrLCHkRIzzr127sxOvR2hwq/3zL9DfFll9D7gUYFGKnYVbWTG3JV5VoWOEUV1HCOeWABP49ZuFUd7VF3HFZQeDcY8gBYCBvJ6LIVmZqrfYXTg5uFh5aKX0WVFRlgWaTZ1hxdmNZW3EIYlgOmEjjdSz+VABmu0XlWH1FpbTbQw6aZKVHuE145ZYghcbll2CGKeaYZJbJZUAAIfkEAA0AAAAshQCPAZ0B/QCHCwsYGBgkQUJMxMXI4+Pk9fX1/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP8ADQgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2pMSKCAx48gP25MGGDAyJMoU6pcybKly5cuO4acWcBlAAEmYercybOnz59AN8qkCdKmAQFBkypdyrSp04hDiXo0+rSq1atYs46MKpWq1q9gw4q1ypWo17Fo06pde7IszbNs48qdS3eg25lw6+rdy5es1KItA/QdTLjwz7sh8xpezLixRcSAWQp2TLmy5YWQRQa+zLmz5cxTN3seTXow6JqiS6tezfa0UdSsY8vO6jpwAQCzc+tuWpulAAA5dwsfvrM38ePIW//VnLy5c7DGn0ufzjQ69evYiy8Pnb27d5bWv4v/H18xPPnz6DFvh52+vXuD5t/LJx9/vv3u9e/rn55/v//k/f0noHABDmigbAUeqGBpCS7oIGcNPiihYxFOaGFhFV6o4V4ZbuihXB1+KGJaIY5oInTrnahiXyWu6KJTLb4oY1IxzmhjTzXeqONLOe7oo0o9/iikUCkOaeRSQR6ppERJLulkQ00+KSVCUU5ppV1FXqnlVllu6eVFVX7pZJhiKklmmUaeiaaQaq7pY5tu6ghnnDbOSaeMdt7pYp56qshnnyb+CaiIgg7qYaGGaohoohYuyqiEjj7qYKSSKkhppQZeiqmAmm7qX6ee6gdqqPaNSqp8pp7qXqqqpsdqq+e9/wrreLLO+l2ttuLXZa5m7sprmr7+ymawwr5JbLFyHotsncoui2ezzu4JbbR+TkttoNZeS2i22h7KbbeKfgtuo+KOC2m55k6KbrqWrstupu6+y2m88n5Kb72i3otvqfrui2q//q4KcMCuDkxwrAYfTGvCCt/KcMO6bgfxhbhO/NnDFlNXccYUYszxcxt/vFjIImPoccnIkYwyiyevPJzKLusFc8x0zUwziC3fPJvNOq/Fc88k5gz0aj8PLVbRRqMocdLvIc00bUI/3ZnTUvu1dNUIX431wlpv7XDXXke8XNhcj03212afLfZfantHddtAvQ23T3LPzVPdduuEd948Rv/NN4d+/13X3oKvRHjhKR2OeFuBL64c2I7rpnjkGU1OOZiNXz6W5ZpTxHnnTGYO+lefj/5Q6aZDKXrqV6HOukKuv07l6rLDSHvt1d2Ou1Kx744l5L5T1nvww/te/O7H45587cvL3vzrz7MeferTm1796NeDnn3n22ve/eXfUx5+5OM7Xv7i5yOefuHrC97+3+/zHX/e89td/9z3w51/2/ur3f/Z/yNbAMM2QK8VcGsHxFoCq7ZAqTXwaQ9kWgSTNkGjVXBoFwRaBnu2QZ118GYfpFkIYzZCl5VwZSdEWQpLtkKRtfBjL+RYDDM2Q4vVcGI3hFhmgkeaHfLQMz78IYRU2CbEqaWtiJUJIhKFd8QlNgY0TmRiE6Nosq5QsWNEvOLIpqhFlpnFAOzpohe/KMYqviWMZQScFdNomjWycYxveSMcEyPHOYoEjXXEGV7yaEc8wiQgACH5BADzAAAALB8CjwEDABEAh/r6+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgOAAEIHEiwoMGDCBMaDAgAOw==" alt="" />

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>
 

后盾网lavarel视频项目---lavarel用户认证实例的更多相关文章

  1. 后盾网lavarel视频项目---lavarel中间件(使用中间件拦截没登录的用户)

    后盾网lavarel视频项目---lavarel中间件(使用中间件拦截没登录的用户) 一.总结 一句话总结: 1.中间件中验证用户是否登录:if(!Auth::guard('admin')->c ...

  2. 后盾网lavarel视频项目---lavarel中的tinker是什么

    后盾网lavarel视频项目---lavarel中的tinker是什么 一.总结 一句话总结: 是用来调试laravel,可以打印变量或对象信息,显示函数代码,对数据库写入和查询数据 laravel中 ...

  3. 后盾网lavarel视频项目---lavarel多表关联一对多操作实例

    后盾网lavarel视频项目---lavarel多表关联一对多操作实例 一.总结 一句话总结: 1.一对多中多那个部分的数据前端通过json弄到服务器 2.所有通过一操作多的时候,都要用上模型中定义的 ...

  4. 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作

    后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...

  5. 后盾网lavarel视频项目---5、淘宝镜像cnpm的原理及如何使用

    后盾网lavarel视频项目---5.淘宝镜像cnpm的原理及如何使用 一.总结 一句话总结: 原理:把npm上面的所有软件copy过来 使用:npm install -g cnpm --regist ...

  6. 后盾网lavarel视频项目---3、lavarel中子控制器继承父控制器以判断是否登录

    后盾网lavarel视频项目---3.lavarel中子控制器继承父控制器以判断是否登录 一.总结 一句话总结: 在common控制器的构造方法中验证登录中间件,其它的控制器继承common控制器 p ...

  7. 后盾网lavarel视频项目---2、phpstorm显示类中的方法快捷键

    后盾网lavarel视频项目---2.phpstorm显示类中的方法快捷键 一.总结 一句话总结: ctrl + f12 1.npm安装js插件? npm install hdjs 2.phpstor ...

  8. 后盾网lavarel视频项目---页面post方式提交之后动态弹出错误信息

    后盾网lavarel视频项目---页面post方式提交之后动态弹出错误信息 一.总结 一句话总结: 1.思路和我想的一样,有错误的时候弹出提示错误消息的模态框就好,没有错误的时候不管它 2.把模态框的 ...

  9. 后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件

    后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件 一.总结 一句话总结: vue中的插件的使用和js插件的使用一样的简单,只是vue插件的引入过程有些不同 ...

随机推荐

  1. HDFS NFS Gateway

    NFS网关支持NFSv3,并允许将HDFS作为客户端本地文件系统进行挂载.目前,NFS Gateway支持并启用以下使用模式: 用户可以通过NFSv3客户端兼容操作系统上的本地文件系统浏览HDFS文件 ...

  2. ES6 模块的加载实现 import和export

    ES6的Class只是面向对象编程的语法糖,升级了ES5的构造函数的原型链继承的写法,并没有解决模块化问题.Module功能就是为了解决这个问题而提出的. 历史上,JavaScript一直没有模块(m ...

  3. 《python解释器源码剖析》第0章--python的架构与编译python

    本系列是以陈儒先生的<python源码剖析>为学习素材,所记录的学习内容.不同的是陈儒先生的<python源码剖析>所剖析的是python2.5,本系列对应的是python3. ...

  4. mysql总结1

    修改表名:alter table table_name rename new_table_name; 添加字段:alter table table_name add column_name type_ ...

  5. 06-spring框架—— Spring 与Web

    在 Web 项目中使用 Spring 框架,首先要解决在 web 层(这里指 Servlet)中获取到 Spring容器的问题.只要在 web 层获取到了 Spring 容器,便可从容器中获取到 Se ...

  6. Python基础:深浅拷贝

    对于数字.字符串深浅拷贝: import copy num = 0 copy_num = copy.copy(num) print("These are normal copy") ...

  7. springboot jpa 创建数据库以及rabbitMQ分模块扫描问题

    在使用jpa过程中,如果没有在配置中加入自动创建实体对于的sql,则需要提前创建建表语句 spring.jpa.properties.hibernate.show_sql=true spring.jp ...

  8. 使用GDI+加载32位的位图或者PNG图片(具有透明通道)

    #include <windows.h> #include <gdiplus.h> HBITMAP LoadBitmapFromResource(DWORD ResourceI ...

  9. Kendo UI for jQuery使用教程:操作系统/jQuery支持等

    [Kendo UI for jQuery最新试用版下载] Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support ...

  10. CSS选择器的权重与优先规

    我们把特殊性分为4个等级,每个等级代表一类选择器,每个等级的值为其所代表的选择器的个数乘以这一等级的权值,最后把所有等级的值相加得出选择器的特殊值. 4个等级的定义如下: 第一等:代表内联样式,如: ...