$ request-> user()在Laravel 5.5中返回null - php

我在从Illuminate Request($ request-> user())获取用户时遇到问题。

 $request->user() // whatever i do this keeps returning null

PusherBroadcastDriver使用此功能,出于明显原因,我无法编辑第三方代码。

我正在使用Tymon \ JWT生成令牌并使用我的应用程序对用户进行身份验证。我目前尝试执行以下操作(检查代码)

认证服务提供者:

public function boot()
{
    $this->registerPolicies();

    Auth::extend('jwt', function ($app, $name, array $config) {
        return new JWTGuard($app['tymon.jwt'],
            Auth::createUserProvider($config['provider']),
            $app['request']);
    });

}

中间件:

 public class JWTRefreshMiddleware extends RefreshToken
{
/**
 * Handle an incoming request.
 *
 * @param  \Illuminate\Http\Request $request
 * @param  \Closure $next
 *
 * @throws \Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException
 *
 * @return mixed
 */
public function handle($request, Closure $next)
{
    $response = parent::handle($request, $next);
    $this->addUserToRequest();
    return $response;
}

private function addUserToRequest()
{
    $request = app('request');
    $user = User::find(JWTAuth::getPayload()['user_id']);
    $request->merge(['user' => $user]);
    $request->setUserResolver(function () use ($user) {
        return $user;
    });
    Auth::setUser($user);
}

}

但不幸的是,上述方法无效。
有人可以指出我正确的方向吗?

参考方案

这是最终的解决方案:

 class JWTRefreshMiddleware extends RefreshToken
 {
/**
 * Handle an incoming request.
 *
 * @param  \Illuminate\Http\Request $request
 * @param  \Closure $next
 *
 * @throws \Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException
 *
 * @return mixed
 */
public function handle($request, Closure $next)
{
    $response = parent::handle($this->addUserToRequest($request), $next);
    return $response;
}

private function addUserToRequest(\Illuminate\Http\Request $request): \Illuminate\Http\Request
{
    $user = User::find(JWTAuth::manager()->decode(JWTAuth::getToken())['user_id']);
    $request->merge(['user' => $user]);
    $request->setUserResolver(function () use ($user) {
        return $user;
    });
    Auth::setUser($user);

    return $request;
  }
 }

dd($ request-> all());返回空数组 - php

我正在尝试从Laravel 5应用程序上传照片以存储在AWS中。我正在使用Postman REST客户端进行测试。当我上传照片时,请求返回一个空数组。有谁知道为什么会这样吗?这是我的头像控制器的代码:class AvatarController extends Controller { public function __construct(AWS $aws…

Yii从Yii::app-> user访问关系数据 - php

我想知道是否有可能或者是否有更简单的方法来做到这一点。我想在许多页面上使用关系数据,现在我使用的每个页面上都放置以下代码:<?php if(!Yii::app()->user->isGuest){ $user = User::model()->findByPk(Yii::app()->user->id); } ?> …

php:将分钟取整到最近的四分之一小时,然后执行更多操作 - php

最初的问题是这样的:取分钟数->转换为四分之一小时-> 1个四分之一小时为1个单位->输出单位我今天整天都在整理页面,几分钟前我的大脑就停止工作了,我只是不知道如何输出单位数量。我知道在此网站上发布问题会有所帮助。因此,用户输入的分钟数(不是小时和分钟,而是数分钟),站点需要输出单位数量。单位是一个刻钟。分钟总是四舍五入到最近的四分之一小时…

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

PHP:填写数组中的“空白” - php

我有一个php数组(通过表单中的复选框值获取-您知道复选框仅在未设置时显示在_POST变量中)。Array ( [2] => 0,2 [3] => 0,3 ) 我需要一种方法来“填补” 0-5之间的差距。所以上面看起来像(用'-1'填充空白。我尝试用填充有'-1'的数组array_merge(),但这没用。Array ( [0] => -1…