Как проверить JWT на одном маршруте в Laravel - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть один маршрут в Laravel, по которому мне нужно проверить JWT в заголовке, если он авторизован и срок его действия не истек. Как я могу это сделать?

В Javascript это действительно просто, но не знаю, как в Laravel.

Вот код:

public function update(Request $request){

 $header = $request->header('Authorization');
 $token = $request->bearerToken();
 $secret = env('EXAMPLE_SECRETE');

 $verified = here i want to verify the jtw /$token

 if (!verified)
   return 'something here'
 else
    >>code here after verified
}

1 Ответ

0 голосов
/ 28 февраля 2020

Сначала установите пакет ниже

composer require firebase/php-jwt

И затем вы можете создать промежуточное ПО для проверки токена или истек срок его действия, ниже приведен полный код промежуточного ПО

namespace App\Http\Middleware;

use Closure;
use Exception;
use App\User;
use Firebase\JWT\JWT;
use Firebase\JWT\ExpiredException;

class JwtTokenMiddleware
{
    public function handle($request, Closure $next, $guard = null)
    {
        $token = $request->bearerToken();

        if (!$token) {
             // Unauthorized response if token not there\

        }
        try {
            $credentials = JWT::decode($token, env('JWT_SECRET'), ['HS256']);

           //You can get credentials that you have set up while generating token
            $user = User::findOrFail($credentials->sub)->setAuthUser();
            $request->auth = $user;
         } catch (ExpiredException $e) {

            // Token expired response
        } catch (Exception $e) {

           // Handle unknow error while decoding token
            return response()->json([
        }
        return $next($request);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...