1

|こんにちは、私は Laravel 5.2 を使用しており、JWT ( https://github.com/tymondesigns/jwt-auth ) を機能させようとしています。問題は、例外をキャッチできないことです。エラーが発生した場合のカスタム応答ですが、キャッチできません。phpstorm は名前空間が間違っていることを示唆していますがTymon\JWTAuth\**Exceptions**\TokenInvalidException、ベンダーフォルダーに移動して名前空間が正しいことを確認しました。コードは次のとおりです。

    try {

        if (!$user = JWTAuth::parseToken()->authenticate()) {
            return response()->json(['user_not_found'], 404);
        }
    } catch (Tymon\JWTAuth\Exceptions\TokenInvalidException $e) {

        return ['token_invalid'];

    }
    return $user;

そのため、return ['token_invalid'];トークンをミスマッチすると実行されず、画面全体で例外がスローされるだけです

4

2 に答える 2

0

あなたが忘れてしまったbackslash

\Tymon\JWTAuth\Exceptions\JWTException $e
于 2016-12-27T06:11:51.597 に答える
0

ops はJWTException名前空間として使用する必要がありました。ここに作業コードがあります。

try {
    if (!$user = JWTAuth::parseToken()->authenticate()) {
        return response()->json(['user_not_found'], 404);
    }
} catch (JWTException $e) {
    return ['token_invalid'];
}

return $user;
于 2016-08-14T22:56:00.327 に答える