【问题标题】:Laravel middleware - empty requestLaravel 中间件 - 空请求
【发布时间】:2018-05-15 12:16:21
【问题描述】:

我使用 laravel 5.5 和 tymon/jwt-auth 作为我的 jwt 服务提供者。 当我使用控制器中的 JWTAuth 外观时 - 一切正常 - 我得到了令牌并且可以操作任何东西。

当我尝试在我创建的自定义中间件中使用 JWTAuth 外观时 - 标头已消失且请求为空。 可以肯定的是,在 laravel 的中间件中这不是问题,因为 JWT 的中间件可以通过 headers 获取令牌。

我在端口 80 上运行 nginx 反向代理,它重定向到端口 8080 上的 apache 服务器,而 apache 运行 laravel 项目。

有人推荐吗?

代码:

api.php

Route::get('organizations', 'OrganizationController@index')->middleware('org');

内核.php

'org' => \App\Http\Middleware\OrganizationMiddleware::class,

OrganizationMiddleware.php

<?php

namespace App\Http\Middleware;

use Closure;
use JWTAuth;

class OrganizationMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
     public function handle($request, Closure $next)
     {
         $token = JWTAuth::getToken();
         return response()->json(['token' => $token], 200);

//       return $next($request);
    }
}

我的尝试都没有成功。中间件回答,但请求完全是空的。所以我无法获取标头或令牌或任何其他参数。 真奇怪。也在本地测试,仅在 apache 上,并使用适当的 .htaccess 文件。还启用了 CORS 以防万一。 令牌完全为空。

更新:

composer.json

"require": {
    "php": ">=5.6.4",
    "aws/aws-sdk-php-laravel": "~3.0",
    "illuminate/contracts": "^5.5",
    "laravel/framework": "5.5.*",
    "laravel/tinker": "~1.0",
    "spatie/laravel-fractal": "^5.2",
    "tymon/jwt-auth": "0.5.11"
},

【问题讨论】:

  • 你能提供一些代码吗?
  • 已添加到帖子中。谢谢:)
  • 你试过没有中间件吗?
  • 是的,没有中间件也可以正常工作。
  • 您通过这个 GET 请求发送了哪些实际输入数据? ...什么查询字符串变量?

标签: php laravel request middleware jwt-auth


【解决方案1】:

将您的 jwt 令牌设置为标头

$request->headers->set('Authorization', 'Bearer' . $token);

在将请求从 nginx 重定向到 apache 期间,可能会丢失标头。检查您的服务器配置。

【讨论】:

  • 想了想。这就是为什么我在使用控制器和 jwt 中间件时写下 - 一切正常 - 令牌就在那里。
  • @UriahAhrak 请问你是怎么解决的?
【解决方案2】:

$request-&gt;bearerToken() 将从请求标头中提取授权承载令牌。

$request-&gt;header()如果你想得到所有的标题。

$request-&gt;header('name', 'default') 按名称获取标题。

$request-&gt;headers 获取HeaderBag

不知道为什么此时东西会是空的。版本信息可能会有所帮助。

【讨论】:

  • 添加 composer.json 需要标签。
猜你喜欢
  • 2017-09-05
  • 1970-01-01
  • 2018-04-21
  • 2020-07-25
  • 2021-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多