Мое приложение - одностраничное приложение, использующее Angular 1.x на стороне клиента и Laravel 5.3 для моего сервера/api. Мне легко удалось сделать аутентификацию Auth0 на моей стороне клиента (угловой), и она успешно генерирует токен. Переходя к моему api (laravel), к сожалению, я не могу получить доступ к любым маршрутам, которые защищены промежуточным программным обеспечением auth0.jwt
, даже несмотря на наличие заголовка авторизации. Его ответ - это простой текст, который гласит: Unauthorized user
.Laravel Auth0 Неавторизованный пользователь
Я использую почтальон Chrome, чтобы проверить маршруты на моем апи.
Я попытался проследить вниз функцию, которая отвечает за ответ, проверяя vendor\auth0\login\src\Auth0\Login\Middleware\Auth0JWTMiddleware.php
и выяснили, что CoreException
выбрасывают.
Вот метод описатель 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);
}
Мой подозреваемый в том, что маркер, который генерирует из Auth0 имеет более новый алгоритм или что-то и пакет Laravel Auth0 это уже не поддерживает.
Я следил за документацией, предоставленной Auth0, и я также клонировал их примеры проектов, чтобы убедиться, что конфигурации верны, но, к сожалению, это тоже не работает. Любые мысли или идеи о том, как я могу решить свою проблему? Заранее спасибо!
Здравствуйте, у меня была такая же проблема, и я разрешил ее var_dumping весь процесс, и я обнаружил, что мне нужно было поставить «secret_base64_encoded» => false, в laravel-auth0.php, если это может вам помочь ! :) – Kangoo13