<?php namespace WangDong\Http\Controllers\Auth;

use Illuminate\Http\Exception\HttpResponseException;
use Illuminate\Http\Request;
use WangDong\Http\Controllers\Controller;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Contracts\Auth\Registrar;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; class AuthController extends Controller { /*
|--------------------------------------------------------------------------
| Registration & Login Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users, as well as the
| authentication of existing users. By default, this controller uses
| a simple trait to add these behaviors. Why don't you explore it?
|
*/ use AuthenticatesAndRegistersUsers; /**
* Create a new authentication controller instance.
*
* @param \Illuminate\Contracts\Auth\Guard $auth
* @param \Illuminate\Contracts\Auth\Registrar $registrar
* @return void
*/
public function __construct(Guard $auth, Registrar $registrar,Request $request)
{
$this->auth = $auth;
$this->registrar = $registrar;
//注册auth.attemp事件
//加入验证码的验证
$this->auth->attempting(function()use($request){
$phrase = \Session::get('phrase');
if($request->input('phrase') != $phrase){
throw new HttpResponseException(
redirect('/auth/login')->withInput($request->input())->withErrors(['phrase'=>'验证码错误'])
);
}
});
$this->middleware('guest', ['except' => 'getLogout']);
} }

需要特别说明的是HttpResponseException这个异常,这个异常接收一个Response作为参数,在Illuminate\Routing\Route的run方法中会捕获这个异常并返回设置的Response,所以我们可以通过抛出这个异常来终止我们的应用程序并跳转

    public function run(Request $request)
{
$this->container = $this->container ?: new Container; try
{
if ( ! is_string($this->action['uses']))
return $this->runCallable($request); if ($this->customDispatcherIsBound())
return $this->runWithCustomDispatcher($request); return $this->runController($request);
}
catch (HttpResponseException $e)
{
return $e->getResponse();
}
}

最新文章

  1. 每天5分钟 玩转OpenStack 目录列表
  2. 用python实现,冒泡排序演示
  3. android学习疑问汇兑
  4. HDU 5781 ATM Mechine (概率DP)
  5. tomcat启动正常,404. Eclipse没有正确部署工程项目
  6. Python深入学习笔记(一)
  7. 3.1.4 Spring的事务管理
  8. vs2017离线安装且安装包不占用C盘空间
  9. 菜鸟入门【ASP.NET Core】3:准备CentOS和Nginx环境转(转)
  10. Harbor api 操作
  11. linux命令详解之useradd命令使用方法[linux下 添加用户、删除用户、修改用户密码、用户组管理]
  12. encode decode enumerate
  13. WDA-FPM-4-用OVP做查询跳转到明细
  14. 关于ListBox的几个问题
  15. Thunder——互评beta版本
  16. Spring Data Jpa 初探
  17. 我的HibernateSearch笔记
  18. Python多线程-事件
  19. 通过内存映射文件来颠倒文本内容(暂没有处理Unicode和换行符)
  20. python 爬虫1 Urllib库的基本使用

热门文章

  1. 低压差稳压器AMS1585
  2. 锐浪应用小插曲,asp.net下的使用
  3. senrty 配置Email
  4. 短随机唯一id生成参考
  5. kafka leader 服务器均衡。
  6. 【JAVA - SSM】之SSM入门项目的搭建
  7. ASP.NET datable导出excel
  8. Android开发实例-健康食谱应用(一)
  9. ExtJs4学习(四):Extjs 中id与itemId的差别
  10. QT 读写sqllite数据库