无法解密通过 Angular 发送的 Laravel 中的 CSRF/XSRF 令牌

Unable to decrypt CSRF/XSRF token in Laravel sent through Angular

我正在为我的应用程序使用 angularavel 设置。在我的本地设置中,我不需要显式发送 XSRF-TOKEN 和 angular http 请求。它适用于 laravel。我在服务器上上传了相同的设置并尝试使用我的表单登录,但 laravel 抛出了 token mismatch 错误。因此,我在开发工具中检查了请求负载,发现请求中没有 XSRF-TOKEN header,就像我在本地看到的那样。我相信 angular 默认生成一个并在每个 http 请求中发送它,但不确定为什么它在这里失败。

我根据本教程here使用元标记方法在angular中添加了csrf令牌。我的元是 <meta name="csrf-token" content='<?php echo json_encode(csrf_token()); ?>'> // Also tried without encoding
在我的 .config 中我有

$httpProvider.defaults.headers.common['X-XSRF-TOKEN'] = $('meta[name=csrf-token]').attr('content');
如果我使用 X-XSRF-TOKEN,我会在 Encrypter.php 行 142:Invalid 数据中得到 DecryptException。 如果我使用 X-CSRF-TOKEN,我会收到令牌不匹配错误。
我的请求在 header(在下面添加)中显示令牌。

Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:68
Content-Type:application/json;charset=UTF-8
Cookie:PHPSESSID=ySsuvCYycB-9IfZZ29kSF1
Host:demo.abc.com
Origin:http://demo.abc.com
Referer:http://demo.abc.com/hexa/public/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36 FirePHP/4Chrome
X-FirePHP-Version:0.0.6
X-Wf-Max-Combined-Size:261120
X-XSRF-TOKEN:InhRWmVjcUxZNWVMRWlrWmFXR09vbGdZT1M2Z284c0NqV2x2RWxaN0Mi  -->token

我哪里错了?此外,来自 angular 的默认标记似乎已集成,并且一个很大的 string.whereas 由函数生成的标记是一个小字符串。

这对我有用,我会向您展示相关片段。

在我的模板中有以下内容:

<script type="text/javascript">myApp.constant("CSRF_TOKEN", '<?= csrf_token() ?>');</script>

我有一个工厂,例如:

.factory('Product', function($http, CSRF_TOKEN) {    
    return {
        // store a product
        save : function(productData) {            
            return $http({
                method: 'POST',
                url: 'http://localhost/angularjs/public/api/products',
                headers: {'X-CSRF-TOKEN': CSRF_TOKEN},
                data: productData
            });
        },
    }
});

我需要做的就是停止接收与 csrf 令牌相关的错误。

模块 angular 中的行对我有用....

in module angularjs
 $httpProvider.defaults.headers.post['X-CSRF-TOKEN'] = $('meta[name=_token]').attr('content');
     $httpProvider.defaults.headers.post['X-XSRF-TOKEN'] = $('meta[name=_token]').attr('content');
    $httpProvider.defaults.withCredentials = true;

i