【发布时间】:2018-10-09 18:56:09
【问题描述】:
我在我的小项目中使用 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';
}
【问题讨论】: