我试图在000webhost免费套餐上托管一个项目,但我陷入了这个问题。我已经搜寻了所有可能且仍然没有解决方案的地方。该项目是使用jwt进行身份验证的laravel 5.7 api,可以在localhost上正常运行。我将所有内容都毫无问题地上传到000webhost上,并以此建立数据库。
我知道它已经启动并且在一定程度上可以正常工作,因为我可以访问index.php并且它显示出来。(这只是一个在上面显示“ hello”的页面)。
我的问题是,当我尝试使用邮递员调用'/ api / showAuthUser'端点时,出现此错误。
Argument 3 passed to Lcobucci\JWT\Signer\Hmac::doVerify() must be an instance of Lcobucci\JWT\Signer\Key, null given, called in /storage/ssd1/450/8968450/vendor/lcobucci/jwt/src/Signer/BaseSigner.php on line 42
当我尝试使用邮递员拨打'/ api / login'时,出现此错误。
Argument 2 passed to Lcobucci\JWT\Signer\Hmac::createHash() must be an instance of Lcobucci\JWT\Signer\Key, null given, called in /storage/ssd1/450/8968450/vendor/lcobucci/jwt/src/Signer/BaseSigner.php on line 34
我确定我已正确连接数据库,并且.env文件中有jwt机密。我尝试了所有无法在线找到的解决方案。我没有尝试过的唯一方法是运行php artisan jwt:secret
,因为我无法在000webhost中运行命令,或者我只是不知道该怎么做。
很抱歉,如果这还不够,但是我是api的新手,这是我最后的希望。谢谢。
答案 0 :(得分:0)
您的config文件夹(config / jwt.php)中有一个jwt.php文件。请在其中用您在.env文件中生成的jwt密钥替换 JWT_SECRET
在 jwt.php 文件中
'secret' => env('JWT_SECRET', 'PLACE YOUR JWT KEY HERE'),
希望这可以解决您的问题