【问题标题】:Trouble connecting to laravel api with jwt while hosting on 000webhost在 000webhost 上托管时无法使用 jwt 连接到 laravel api
【发布时间】: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 文件中的密钥。
  • 是的,所有的密钥和秘密都在文件中,但我在本地机器上生成了它们。我无法在服务器上运行命令,因此无法重新运行命令。

标签: php laravel api jwt shared-hosting


【解决方案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 文件夹。我希望我解释得很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-22
  • 2017-10-13
  • 2018-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多