В моем проекте для разработки используется Laravel + JWT + dingo, JWT хочет получить токен обновления промежуточного программного обеспечения, чтобы в процессе тестирования найти такое промежуточное программное обеспечение в сети
public function handle($request, Closure $next){
$this->checkForToken($request);
try {
if ($this->auth->parseToken()->authenticate()) {
return $next($request);
}
throw new UnauthorizedHttpException('jwt-auth', 'sorry');
} catch (TokenExpiredException $exception) {
try {
$token = $this->auth->refresh();
Auth::guard('api')->onceUsingId($this->auth->manager()->getPayloadFactory()->buildClaimsCollection()->toPlainArray()['sub']);
} catch (JWTException $exception) {
throw new UnauthorizedHttpException('jwt-auth', $exception->getMessage());
}
}
return $this->setAuthenticationHeader($next($request), $token);
}
И я проверил мой API на почтальоне, но я не могу получить авторизацию заголовков
только
Server →nginx/1.10.3 (Ubuntu)
Content-Type →application/json
Transfer-Encoding →chunked
Connection →keep-alive
WWW-Authenticate →jwt-auth
Cache-Control →no-cache, private
Date →Fri, 02 Nov 2018 09:55:42 GMT
Функция setAuthenticationHeader:
$response->headers->set('Authorization', 'Bearer '.$token);
почему это не работает?
наконец я использую:
return $next($request)->withHeaders([
'Authorization'=> 'Bearer '.$token,
]);
и я получил то, что хотел.