导入静态模板
写一个控制器并配置相应的路由return到已存在的php页面
在php页面中修改css路径
<link rel="stylesheet" href="{{asset('admin/style/css/ch-ui.admin.css')}}">
注:asset的路径默认为localhost/public文件夹下,需将css,js放至此文件夹下,否则报错
引入验证码类
把事先下载好的验证码类放到resources下(在此文件下建立org子文件夹)
编写控制器和对应的路由测试验证码是否调出
require_once base_path() . '\resources\org\code\Code.class.php';
其中base_path() . 为自动匹配路径
测试成功后在登录界面进行相应的设置
调用验证码图片
src="{{url('admin/code')}}"
点击验证码刷新
οnclick="this.src='{{url('admin/code')}}?'+Math.random()"
Math.random()产生随机数防止浏览器调用缓存数据
登录表单提交csrf认证及验证码判断
public function login() { if($input=Input::all()){ dd($input); } else{ return view('admin.login'); } }
在登录模板中表单发起时添加csrf保护
<form action="" method="post"> {{csrf_field()}} </form>
注:
跨站请求伪造(csrf)通过伪装授权用户的请求来利用授信网站的恶意漏洞,laravel让应用避免遭到跨站请求攻击变得更简单
作用:为有效用户生成一个scrf令牌,验证用户和发起者请求是否为同一个人.
在表单发起时,添加csrf保护
{{ csrf_field() }}
中间件组web中的中间件VerifyCsrfToken会自动为我们驶入请求的token值和session中储存的token是否一致.
验证码判断
在控制器中写如下判断语句
if($input=Input::all()){ $code = new \Code; $_code = $code->get(); if($input['code']!=$_code){ return back()->with('msg','验证码错误'); } } else{ return view('admin.login');
在首页中动态输出提示信息
<div class="form"> @if(session('msg')) <p style="color:red">{{session('msg')}}</p> @endif <form action="" method="post"> </form> </div>