簡體   English   中英

Angular2和Laravel CSRF保護

[英]Angular2 and Laravel CSRF protection

我已經讀過一些話題

我遇到的問題在於這段代碼

<meta property="csrf-token" name="csrf-token" content="{{ csrf_token() }}">

我使用Angular2作為核心引擎,該引擎將AJAX請求發送到Laravel API,並且我沒有使用刀片模板-僅是.html files ,因此我無法從html文件調用php函數csrf_token()

因此,我通過擴展/var/www/pandacrm/app/Http/Middleware/VerifyCsrfToken.php文件添加了一個臨時解決方案

public function handle($request, Closure $next)
{
    if ( ! $request->is('api/*'))
    {
        return parent::handle($request, $next);
    }

    return $next($request);
}

但是,這似乎並不是解決問題的最佳方法,是否還有其他解決方案可以解決此問題?

您可以通過在HTML文件中使用JavaScript創建帶有csrf-tokenmeta標記!

這個怎么做:

向Laravel Route發送Ajax請求以獲取令牌。 (在Controller操作中返回csrf-token ),然后在html文件中創建帶有該標記的meta標簽。

但是在執行此操作之前,您必須在該特定路由上禁用csrf保護。 有一個辦法做到這一點這里的laravel5和這里為5.3。

現在,您有了一個帶有csrf的元標記,可用於其他ajax請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM