关于不建议在注册日期声明中使用整数的解决办法
初学者暂且先不深究这个包为什么不赞成使用整数的问题。
进入php artisan tinker后,试图运行以下命令:
$user = User::first();Auth::guard('api')->login($user);
得到一个报错:
PHP Deprecated: Using integers for registered date claims is deprecated, please use DateTimeImmutable objects instead. in /home/vagrant/code/larabbs/vendor/lcobucci/jwt/src/Builder.php on line 169
由报错可知是这个包的问题:lcobucci/jwt。
遂前往packagist.org/搜索tymon/jwt-auth包,因为是这个包附带安装的lcobucci/jwt包。
上图中,该包限制^3.2,意思是3.2 < 现有版本 < 4.0, 1.1.0-rc.5版本在此刻装的lcobucci/jwt版本号3.4.5。
经过一番搜索,大致原因是因为3.4以上版本做了重大修改,我们使用3.3.3版本即可,但是我直接安装3.3.3版本时,会报如下错误:
Generating optimized autoload files
PHP Parse error: syntax error, unexpected '/', expecting end of file in /home/vagrant/code/larabbs/vendor/composer/autoload_files.php on line 44
干脆把vendor目录删掉,composer.json以及composer.lock恢复到该节课的git版本,重新运行composer install重装,然后安装1.0.2版本,安装该版本的原因如下图:
composer require tymon/jwt-auth 1.0.2
,安装完后,再重新走一遍该节的教程,一切正常。
至于这个包产生差异的根本原因,留待以后熟练之后再从根源寻找解决办法。
推荐文章: