Meine Anwendung ist eine einzelne Seite App mit Angular 1.x auf der Client-Seite und Laravel 5.3 für meine Server/API. Ich habe es leicht geschafft, die Authentifikation auf meiner Client-Seite (eckig) zu machen und es erzeugt erfolgreich ein Token. Umzug in meine API (Laravel), leider kann ich nicht auf alle Routen zugreifen, die durch die auth0.jwt
Middleware geschützt ist, obwohl die Authorization-Header vorhanden ist. Seine Antwort ist ein einfacher Text, der Unauthorized user
sagt.Laravel Auth0 Nicht autorisierter Benutzer
Ich benutze Chrome Postman, um die Routen auf meiner API zu testen.
Ich habe versucht, die Funktion aufzuspüren, die für die Antwort durch Prüfen der vendor\auth0\login\src\Auth0\Login\Middleware\Auth0JWTMiddleware.php
und fand heraus, dass die CoreException
geworfen wird verantwortlich ist.
Hier ist der Griff Methode des Auth0JWTMIddleware:
/**
* @param $request
* @param \Closure $next
*
* @return mixed
*/
public function handle($request, \Closure $next)
{
$auth0 = \App::make('auth0');
$token = $this->getToken($request);
if (!$this->validateToken($token)) {
return \Response::make('Unauthorized user', 401);
}
if ($token) {
try {
$jwtUser = $auth0->decodeJWT($token);
} catch (CoreException $e) {
return \Response::make('Unauthorized user', 401);
} catch (InvalidTokenException $e) {
return \Response::make('Unauthorized user', 401);
}
// if it does not represent a valid user, return a HTTP 401
$user = $this->userRepository->getUserByDecodedJWT($jwtUser);
if (!$user) {
return \Response::make('Unauthorized user', 401);
}
// lets log the user in so it is accessible
\Auth::login($user);
}
// continue the execution
return $next($request);
}
Mein suspekt ist, dass das Token, das von Auth0 erzeugt neueren Algorithmus oder etwas und das Laravel Auth0 Paket es nicht bereits unterstützt hat.
Ich folgte genau der Dokumentation von Auth0 und ich klonte auch ihre Beispielprojekte, nur um sicherzustellen, dass die Konfigurationen korrekt sind, aber leider funktioniert es auch nicht. Irgendwelche Gedanken oder Ideen, wie kann ich mein Problem lösen? Danke im Voraus!
Hallo, ich hatte das gleiche Problem und ich löste es durch var_dumping der gesamte Prozess, und ich fand es ich musste 'secret_base64_encoded' setzen => falsch, in Laravel-auth0.php, wenn das Ihnen helfen kann ! :) – Kangoo13