加密发送到Laravel的标题?

时间:2014-12-05 16:07:04

标签: laravel http-headers laravel-5

此代码来自Laravel,VerifyCsrfToken.php。它的评论解释了一些事情。我通过restangular从Angular向Laravel发送请求。令牌正确发送(我认为),但解密了无效的数据异常。我可以通过删除最后的Decrypt调用来使这段代码工作。我看了看,发现没有提到在发送之前需要加密的标题,我甚至不知道该怎么做。

protected function tokensMatch($request)
{
    $token = $request->session()->token();
            //from log, $token = UD6zHpg6lQYa9Xdz69kmOa3D2BBr12ErbhJD744x

    $header = $request->header('X-XSRF-TOKEN');
            //from log, $header = UD6zHpg6lQYa9Xdz69kmOa3D2BBr12ErbhJD744x

    if ( StringUtils::equals($token, $header)) Log::info('Token' . $token . " -- Header " . $header);

    return StringUtils::equals($token, $request->input('_token')) ||
        ($header && StringUtils::equals($token, $this->encrypter->decrypt($header))); 
                        //original line - Decrypt Error - invalid data

                ($header && StringUtils::equals($token, $header));
                        //my alternative - works!

                        //HOW SHOULD THE HEADER BE ENCRYPTED when sent????
                        //MY Current HEADER...
                        //X-XSRF-TOKEN: UD6zHpg6lQYa9Xdz69kmOa3D2BBr12ErbhJD744x
}

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我使用加密器进行加密,然后才将其用于角度我的令牌。

 $encrypter = app('Illuminate\Encryption\Encrypter');
    $token = $encrypter->encrypt(csrf_token());

亚历