第一点,Lcobucci\JWT\Builder 类的 getToken 返回的 object 是一个 Lcobucci\JWT\Token 实例,而 Lcobucci\JWT\Token 是有一个 __toString 方法的,这个方法保证了即使你直接 echo
的时候也是返回字符串,这种用法在面向对象里很常见的,不管是强面向对象的框架(比如 Symfony )还是其它语言(比如 JAVA ),所以并不觉得这样会不友好:
https://github.com/lcobucci/jwt/blob/3.2.5/src/Builder.php#L264第二点,客户端传过来的 token string 只需要使用 Lcobucci\JWT\Parse 中的 parse 方法生成一个新的 Lcobucci\JWT\Token 实例:
具体实现在:
https://github.com/lcobucci/jwt/blob/3.2.5/src/Token.php#L191实例代码:
$parser = new \Lcobucci\JWT\Parse();
$token = $parser->parse($_GET['token']);
而这个 $token 实例,是和你上一步的 Lcobucci\JWT\Token 是一样的,有了这个 $token 实例之后,你只需要在 verify 里验证你的 singer 就可以了,根本不存在你说的客户端传过来是个 string 无法验证这种问题。
所以,用以上两点来证明这个包坑多,不友好,完全没有说服力。