php – JWT解码试试看
发布时间:2020-12-13 21:56:35 所属栏目:PHP教程 来源:网络整理
导读:我在我的小项目中使用JWT进行授权(REST API). JWT看起来非常适合我的项目. 假设我有这段代码: $key = "secret";$token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30
我在我的小项目中使用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,array('HS256')); 要么 $key = "secret"; $token = "abc" $data = JWT::decode($token,array('HS256')); PHP将发出异常/错误,如何处理这些异常/错误,以便最终用户不会看到它们(与错误中的我的密钥一起). 我试过做以下事情: try { $key = "secret"; $token = "abc" $data = JWT::decode($token,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,array('HS256')); } catch (Exception $e) { // Also tried JwtException echo 'error'; } 在这里找到:https://github.com/firebase/php-jwt/issues/50 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |