在000webhost上托管时无法通过jwt连接到laravel API

时间:2019-03-15 00:40:00

标签: php laravel api jwt shared-hosting

我试图在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的新手,这是我最后的希望。谢谢。

1 个答案:

答案 0 :(得分:0)

您的config文件夹(config / jwt.php)中有一个jwt.php文件。请在其中用您在.env文件中生成的jwt密钥替换 JWT_SECRET

jwt.php 文件中

'secret' => env('JWT_SECRET', 'PLACE YOUR JWT KEY HERE'),

希望这可以解决您的问题