【问题标题】:Laravel encrypter occassionally throws Payload is invalidLaravel 加密器偶尔会抛出 Payload is invalid
【发布时间】:2020-01-25 19:40:57
【问题描述】:

我有一个 laravel 站点 (v 5.7),我在其中加密数据,发送到处理器,然后将其接收回来。每隔一段时间我就会收到一个无效的有效载荷。下面的堆栈跟踪:

Illuminate\Contracts\Encryption\DecryptException: The payload is invalid. in D:\mysite\vendor\laravel\framework\src\Illuminate\Encryption\Encrypter.php:191
Stack trace:
#0 D:\mysite\vendor\laravel\framework\src\Illuminate\Encryption\Encrypter.php(134): Illuminate\Encryption\Encrypter->getJsonPayload(NULL)
#1 D:\mysite\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php(382): Illuminate\Encryption\Encrypter->decrypt('eyJpdiI6ImVENCt...', false)

似乎在运行解密时设置了变量,然后在框架中传递它时它突然变成了一个 NULL 值。

任何帮助将不胜感激。

【问题讨论】:

  • 好吧,这是在黑暗中拍摄的。
  • 天哪,我遇到了同样的问题。我还没有找到任何真正的指导。

标签: php laravel encryption payload


【解决方案1】:

我也遇到了同样的问题。您应该使用 Xdebug 来查看您的情况是否类似。

堆栈跟踪有点误导,但事实证明正在创建的 CSRF 令牌在 getJsonPayload 的这一行遇到了问题:

$payload = json_decode(base64_decode($payload), true);

这是实际返回 null 的内容,因为当生成的令牌是 base64_decoded 时,结果在我看来就像二进制数据,而不是 JSON 格式的字符串数据。

可悲的是,这就是我所得到的......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 2016-03-24
    相关资源
    最近更新 更多