В настоящее время я использую Slim с slim-jwt-auth.Как определить пользователя при использовании токена jwt (Slim-jwt-auth)
Мой проект основан на тонком-скелете (https://github.com/tuupola/slim-api-skeleton). Мне нужно разрешить маршрут только для пользователя, создавшего токен.
Я сделал это с помощью следующего кода:
//check if it is the right user
$user = \User::find($args["uid"]);
$token = $request->getHeader('HTTP_AUTHORIZATION');
$token = str_replace("Bearer ", "", $token);
$secret = getenv("JWT_SECRET");
$decoded = JWT::decode($token[0], $secret, array("HS256"));
if ($decoded->sub != $user->email)
{
throw new ForbiddenException("User not allowed to read.");
}
Является ли это правильно? или есть лучший способ сделать это?
Спасибо ... это работает. Я только что изменил способ получить токен, потому что прямое использование $ request-> token-> sub не работает для меня. Итак, я использовал следующий способ: $ token = $ request-> getAttribute ("токен"); if ($ token-> sub! == $ user-> email) ... – kip