2
我在從照明請求($ 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);
}
}
但不幸的是上面沒有工作。 有人能指引我正確的方向嗎?
天啊三江源!我怎麼能看到這一點。我不得不稍微修改一下代碼,以便讓jwt在認證之前從令牌解析用戶,但在此之後它像魅力一樣工作。 –