나는 직면하고 있습니다 "Laravel의 JWT에서" 오류로 인해 토큰을 구문 분석 할 수 없습니다."토큰을 요청에서 구문 분석하지 못했습니다."laravel의
localhost (Windows 7의 Xampp)에서 동일한 코드를 시도했지만 작동하지만 서버에서는 작동하지 않습니다.
"승인" 토큰을 헤더에 전달했으며 또한 .htaccess 파일을 변경했습니다.
다음은 htaccess로 파일입니다2. 각 에 요청에서 전달 토큰 아래 스크린 샷 확인하시기 바랍니다.
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ /index.php/$1 [L]
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
</IfModule>
(나는 또한 루트 htaccess로 파일과 공공의 .htaccess 파일 모두에서이 코드를 시도했다) 그리고이 인증 토큰 코드 아래 사용했다.
: 시간을 절약해야하는 경우 때문에 아파치로Authorization
헤더의 문제가 배제
public function image_upload(Request $request){
try{
if($user = JWTAuth::parseToken()->authenticate()){
\Api::success(['data' => $user]);
}else{
\Api::error("User is not found.");
}
}
catch(\Tymon\JWTAuth\Exceptions\TokenExpiredException $e){
\Api::error(['type'=> 'expired','message' => 'Your login has been expired. Please login and try again.']);
exit();
}
catch(\Tymon\JWTAuth\Exceptions\TokenInvalidException $e){
\Api::error(['type'=> 'invalid','message' => $e->getMessage()]);
exit();
}
catch(\Tymon\JWTAuth\Exceptions\JWTException $e){
\Api::error(['type'=> 'invalid','message' => $e->getMessage()]);
exit();
}
}
'$ request-> bearerToken()'을 돌려보고 그것을 가질 수 있는지 알아 볼 수 있습니까? –
또한 문제는 여기에 귀하의 사례와 관련이 있다고 명시되어 있습니까? https://github.com/tymondesigns/jwt-auth/issues/786 즉'''# Handle Authorization Header RewriteCond % {HTTP : Authorization}입니다. RewriteRule. * - [E = HTTP_AUTHORIZATION : % {HTTP : Authorization}] –
$ request-> bearerToken()이 * NULL * 값을 반환하려고 시도했습니다 ** –