【问题标题】:Auth0 Laravel get JWT tokenAuth0 Laravel 获取 JWT 令牌
【发布时间】:2021-10-20 14:41:00
【问题描述】:

我使用 Auth0 作为我的 OAuth 提供程序,它运行良好。整个事情在我的 Laravel 后端运行,它正确地重定向并返回身份验证。然而问题是我找不到检索 JWT 令牌的函数。我知道我可以使用正确的数据进行 curl 请求,但是当所有 url 数据已经在 Auth0\Login\Auth0Service 中可用时构建一个似乎不合逻辑。所以我要么没有找到正确的方向,要么它不存在。

问题是:Laravel 的 Auth0 包中提供的 jwt 令牌有没有方便检索的功能。

【问题讨论】:

    标签: php jwt laravel-8 auth0


    【解决方案1】:

    我的问题的字面答案在配置文件'persist_id_token' => true, 中。这给了我 jwt 令牌。但最终这并不是完全的解决方案。由于两个问题,未包含用户数据。首先是范围;它没有配置文件。第二个问题是很多数据超出了范围。所以我们制作了自定义范围来解决这个问题。

    最后,我似乎不知道 OIDC 定义的范围/声明。可以在这里找到:https://auth0.com/docs/tokens/json-web-tokens/json-web-token-claims

    【讨论】:

      【解决方案2】:

      您可以提供您的示例,然后我将查看您的代码中的具体问题,

      一般情况下,您可以访问令牌。

      下一个示例有一个不记名令牌,您可以访问$request->bearerToken()

       /**
          * Handle an incoming request.
          *
          * @param  \Illuminate\Http\Request  $request
          * @param  \Closure  $next
          * @return mixed
          */
      
      public function handle($request, Closure $next)
        {
          $auth0 = app()->make('auth0');
      
          $accessToken = $request->bearerToken();
          try {
            $tokenInfo = $auth0->decodeJWT($accessToken);
            $user = $this->userRepository->getUserByDecodedJWT($tokenInfo);
            if (!$user) {
              return response()->json(["message" => "Unauthorized user"], 401);
            }
      
          } catch (InvalidTokenException $e) {
            return response()->json(["message" => $e->getMessage()], 401);
          } catch (CoreException $e) {
            return response()->json(["message" => $e->getMessage()], 401);
          }
      
          return $next($request);
        }
      

      【讨论】:

      猜你喜欢
      • 2018-01-13
      • 2017-12-29
      • 1970-01-01
      • 2021-04-21
      • 2016-07-18
      • 2021-07-28
      • 2017-07-13
      • 2017-03-22
      • 2020-07-01
      相关资源
      最近更新 更多