Ich verwende derzeit Slim mit Slim-JWT-Auth.Wie erkennt man den Benutzer bei der Verwendung eines JWT-Tokens (Slim-JWT-Auth)
Mein Projekt basiert auf dem Slim-Api-Skelett (https://github.com/tuupola/slim-api-skeleton). Ich muss eine Route nur für den Benutzer zulassen, der das Token erstellt hat.
Ich habe es mit dem folgenden Code getan:
//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.");
}
Ist es richtig? oder gibt es einen besseren Weg?
Danke ... es funktioniert. Ich habe gerade den Weg geändert, um das Token zu bekommen, weil die direkte Verwendung von $ request-> token-> sub für mich nicht funktioniert. Also habe ich den folgenden Weg verwendet: $ Token = $ Anfrage-> GetAttribute ("Token"); if ($ token-> sub! == $ user-> email) ... – kip