在 000webhost 上托管时无法使用 jwt 连接到 laravel api
Posted
技术标签:
【中文标题】在 000webhost 上托管时无法使用 jwt 连接到 laravel api【英文标题】:Trouble connecting to laravel api with jwt while hosting on 000webhost 【发布时间】:2019-08-06 00:37:49 【问题描述】:我正在尝试在 000webhost 免费层上托管一个项目,但我遇到了这个问题。我已经到处搜索了,但仍然没有解决方案。该项目是一个使用 jwt 进行身份验证的 laravel 5.7 api,并且在 localhost 上运行良好。我毫无问题地在 000webhost 上上传了所有内容,并以此设置了数据库。
我知道它已经启动并在一定程度上工作,因为我可以访问 index.php 并显示它。(它只是一个显示“你好”的页面)。
我的问题是当我尝试使用邮递员调用“/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 的新手,这是我最后的希望。谢谢你。
【问题讨论】:
This post may help you 。它展示了如何在 000webhost 中逐步配置一个 laravel 项目 您好,感谢您的快速回复。我按照本指南完成了所有内容以及其中显示的更多内容。它仍然没有工作。我认为我的问题与 JWT 有关,但我不知道如何解决。 本地环境文件中是否生成了 JWT_SECRET 密钥?尝试在托管实例中包含该 JWT_SECRET 和 env 文件中的密钥。 是的,所有的密钥和秘密都在文件中,但我在本地机器上生成了它们。我无法在服务器上运行命令,因此无法重新运行命令。 【参考方案1】:您的配置文件夹 (config/jwt.php) 中有一个 jwt.php 文件。在那里,请将 JWT_SECRET 替换为您在 .env 文件中生成的 jwt 密钥
在 jwt.php 文件中
'secret' => env('JWT_SECRET', 'PLACE YOUR JWT KEY HERE'),
希望这能解决您的问题
【讨论】:
感谢您的回复。由于时间不多了,我放弃了使用 000webhost。我最终使用了我拥有的 Godaddy 帐户。我使用相同的代码和相同的键,它在那里工作得很好。上传到 godaddy 时的一个区别是,不仅仅是将 Laravel 文件上传到根目录,如下所示link 我将所有文件放在名为 laravel 的文件夹中。然后我将公共文件中的所有文件放入 public_html 并将引导路径更改为 laravel 文件夹。我希望我解释得很好。以上是关于在 000webhost 上托管时无法使用 jwt 连接到 laravel api的主要内容,如果未能解决你的问题,请参考以下文章
在 Heroku 上托管时,Puppeteer discord bot 不断崩溃
为啥我的 discord.py 机器人在 Heroku 上托管时没有声音?
在 Android Studio 中使用 Retrofit 无法从 000webhost 获得响应