当前位置: 首页 > 知识库问答 >
问题:

laravel 5.5自定义库创建中间件$request->用户返回null

微生永春
2023-03-14

嗨,我对auth()有问题-

public function handle($request, Closure $next, $right)
{
    return var_dump($request->user()); <------ Here i get NULL

    if($request->user()->hasRights($right)){
        return $next($request);
    }

    return redirect("/");
}

这里是一个简单的服务提供商

public function boot()
{


    $this->loadViewsFrom(__DIR__."/views", 'aFolder');
}

/**
 * Register services.
 *
 * @return void
 */
public function register()
{
    include __DIR__."/routes.php";
    $this->app->make("aCustomlib\aFolder\Controllers\aController");
}

一条简单的路线。

 Route::get("/aPath", "aCustomlib\aFolder\Controllers\aController@index");

我在Kernel.php注册了中间件

然后我只是在aController.php中调用_构造函数

$this->middleware('rights:aRight');

我知道名字是愚蠢的名字,但这只是一个例子,我只是在学习。

谢谢你的回答。

PS:所有这些文件都在/vendor文件夹中

即使在_构造函数(){$This中使用,也会发生这种情况-

共有1个答案

柳珂
2023-03-14

您需要在web中间件组中包装您的路由(启动并填充会话相关数据),例如:

Route::group(['middleware' => 'web'], function () {
    include __DIR__."/routes.php";
});
 类似资料:
  • 问题内容: 我需要做的就是在当前函数执行结束时执行一个回调函数。 此功能的使用者应如下所示: 我该如何实施? 问题答案: 实际上,您的代码将按原样工作,只需将回调声明为参数即可,您可以使用参数名称直接调用它。 基础知识 那会叫,这会叫,这会提醒“东西在这里”。 请注意,传递函数 引用 ()而不是调用函数并传递其结果()非常重要。在您的问题中,您可以正确执行此操作,但是值得指出,因为这是一个常见错误

  • 我们不仅可以分配事件处理程序,还可以从 JavaScript 生成事件。 自定义事件可用于创建“图形组件”。例如,我们自己的基于 JavaScript 的菜单的根元素可能会触发 open(打开菜单),select(有一项被选中)等事件来告诉菜单发生了什么。另一个代码可能会监听事件,并观察菜单发生了什么。 我们不仅可以生成出于自身目的而创建的全新事件,还可以生成例如 click 和 mousedow

  • 有时Android提供的组件无法满足我们的需求,因此需要自定义组件. 创建自定义组件的一般步骤: 1.新建类文件,要继承View或View的子类. 2.覆写父类的一些方法. 3.使用自定义组件类. Android Studio会通过模板帮我们自动生成文件,并覆写方法. 我们只需要根据自已的实际需求修修攺改就好了. 操作步骤: 菜单栏: File —> New —>UI Component —> C

  • 中间件是 WebHook 的一种变种模式,不同的是它早于 WebHook 执行,你可以做一些有用的前置拦截,比如 token 校验、日志记录等等。 实现一个中间件可以参考一个例子: public class BasicAuthMiddleware implements WebHook { private static final int AUTH_LENGTH = 6; priv

  • 我读了很多关于这个问题的文章,我确实找到了一些处理它的文章——但不幸的是,我不能真正理解如何解决我的问题。 现在我正在创建WebService(使用Tomcat 7),我想共享接口。我有大约8个相互关联的接口。例如: 问题是,在创建WAR(用于接口C)文件并尝试在tomcat中部署webservice后,tomcat出现了一个错误,如下所示: 严重:WSSERVLET11:无法分析运行时描述符:c