php – JWT解码试试看

我在我的小项目中使用JWT进行授权(REST API). JWT看起来非常适合我的项目.

假设我有这段代码

$key = "secret";
$token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
$data = JWT::decode($token, $key, array('HS256'));

代码将返回JWT官方页面上的数组.

但是,如果我尝试运行以下代码

$key = "secret";
$token = "abc.abc.abc"
$data = JWT::decode($token, $key, array('HS256'));

要么

$key = "secret";
$token = "abc"
$data = JWT::decode($token, $key, array('HS256'));

PHP将发出异常/错误,如何处理这些异常/错误,以便最终用户不会看到它们(与错误中的我的密钥一起).

我试过做以下事情:

try {
    $key = "secret";
    $token = "abc"
    $data = JWT::decode($token, $key, array('HS256'));
} catch (Exception $e) { // Also tried JwtException
    echo 'error';
}

解决方法:

我来到同样的问题,解决这个错误解决方案是:

catch (\Exception $e) not catch (Exception $e)

所以你的代码变成:

try {
    $key = "secret";
    $token = "abc"
    $data = JWT::decode($token, $key, array('HS256'));
} catch (\Exception $e) { // Also tried JwtException
    echo 'error';
}

在这里找到:https://github.com/firebase/php-jwt/issues/50

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...