• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

php laravel中auth自动生成的登录页源码有一处不懂(中间件)

我用 php artisan make:auth生成了一个登录注册的模块
我分析源码的时候 发现 app\Http\Controllers\Auth\LoginController.php内存在这样一段代码:
    public function __construct()    {        $this->middleware('guest', ['except' => 'logout']);    }我看到$this->middleware代码后先是一愣...  后来在网上找到资料原来这是使用了一个中间件

但我对后面的['except' => 'logout']); 实在不懂,寻求大神给予讲解一下。
另外:except是源码里自己定义的 还是laravel自带的?

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与2

这个是laravel框架里面自带的,中间件就是控制用户是否能访问的一种机制。
在文件vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php 77行
/***Determineifthegivenoptionsexcludeaparticularmethod.**@paramstring$method*@paramarray$options*@returnbool*/protectedstaticfunctionmethodExcludedByOptions($method,array$options){return(isset($options['only'])&&!in_array($method,(array)$options['only']))||(!empty($options['except'])&&in_array($method,(array)$options['except']));}

  • 在Controller设置中间件的时候可以设置:only针对某个方法添加中间件,或者except除了这个方法之外的方法都添加中间件
methodExcludedByOptions 方法是判断是否在这个方法中使用中间件,返回值是布尔值 true使用中间件,false不使用中间件


排除特定的方法不使用中间件
$this->middleware('guest:admin',['except'=>'login']);在指定的方法中使用中间件
$this->middleware('guest:admin',['except'=>'logout']);推荐将中间件写在路由中
Route::get('logout','AuthController@logout')->middleware('auth:admin');

使用道具 举报

出去,退出登录这个请求不需要,验证

使用道具 举报

发新帖

发布任务需求已有1031167位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!