私のアプリケーションは、クライアント側でAngular 1.xを使用し、サーバー/ apiでLaravel 5.3を使用する単一ページアプリケーションです。クライアント側(角)でAuth0認証を簡単に管理でき、トークンが正常に生成されました。私のAPI(laravel)に移動すると、残念ながらAuthorizationヘッダーが存在してもauth0.jwt
ミドルウェアで保護されているルートにはアクセスできません。その応答はUnauthorized user
という単純なテキストです。Laravel Auth0権限のないユーザー
私はChromeのpostmanを使用して、私のAPI上のルートをテストしています。
私は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