我在我的小项目中使用JWT进行授权(REST API). JWT看起来非常适合我的项目.
$key = "secret";
$token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
$data = JWT::decode($token, $key, array('HS256'));
但是,如果我尝试运行以下代码:
$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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。