我希望能够从http_request_body中检索令牌,因为我需要从中发送数据的令人讨厌的原因,令牌太长而无法作为查询字符串的一部分发送,并且他们不接受发送头
无论如何,我已经设法将jwt.auth GetUserFromToken中间件编辑为以下内容:
if (! $token = $this->auth->setRequest($request)->getToken()) {
if(! $token = $request->get('token') ) {
return $this->respond('tymon.jwt.absent', 'token_not_provided', 400);
}
}
这有效,但我想知道是否有更好的方式更永久? 显然,当我部署或更新软件包时,这将被覆盖。
有没有办法扩展或覆盖我的应用程序中的这个类,而不是直接在供应商中间件中?
谢谢!
答案 0 :(得分:0)
在@Moeen Basra @apokryfos和How to override vendor class file?
的帮助下管理扩展中间件,使其覆盖现有的类,并在部署应用程序或更新程序包时不会受到影响。
添加了MyGetUserFromToken.php
namespace App\Overrides\Tymon;
use Tymon\JWTAuth\Middleware\GetUserFromToken;
class MyGetUserFromToken extends GetUserFromToken {
然后在内核中
//use Tymon\JWTAuth\Middleware\GetUserFromToken;
use App\Overrides\Tymon\MyGetUserFromToken;
...
'jwt.auth' => MyGetUserFromToken::class,
希望这也可以帮助其他人。