【问题标题】:Error: "The JWT string must have two dots"错误:“JWT 字符串必须有两个点”
【发布时间】:2019-09-23 21:26:46
【问题描述】:

我尝试从 Http 请求中解析承载令牌,以在下一步中获取客户端信息。它在大多数情况下工作得非常好,但有时哨兵会给我一个错误:“JWT 字符串必须有两个点”。 我该如何预防这种情况?

$bearerToken = Request::bearerToken();
$parsedToken = (new Parser())->parse($bearerToken);

【问题讨论】:

  • 有人恶意编辑JWT令牌吗?此外,尝试在解析器周围添加一个 try/catch 块,以便在出现错误时向哨兵报告实际的不记名令牌,这样您就可以看到发生了什么。
  • @FrankerZ 我不编辑令牌,也许用户会这样做。我尝试使用 try/catch 块。

标签: php laravel authentication sha256


【解决方案1】:

@FrankerZ 的 try / catch 块提示效果很好!

try {
   $bearerToken = Request::bearerToken();
   $parsedToken = (new Parser)->parse($bearerToken);
   $tokenId = $parsedToken->getHeader('jti');
   $this->client = Token::find($tokenId)->client;
} catch (Exception $e) {
   $this->client = [];
}

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 2017-02-23
    • 2020-12-01
    • 1970-01-01
    • 2018-04-24
    • 2012-01-03
    相关资源
    最近更新 更多