CSRF для нескольких приложений / служб

У меня есть 2 приложения под тем же доменом, 1 работает с сервера PHP 5.6 с Laravel 5.2 backend & Angular2 frontend, а другой с пользовательской платформой на сервере PHP 5.3 с плоским JavaScript frontend. В каждом приложении у меня есть токен csrf. Более старый сервер (5.3) имеет пользовательский генератор csrf, но laravel использует VerifyCsrfToken laravel.PHP middleware.

Иногда мне нужно вызвать старый API из интерфейса angular2, но токены csrf не совпадают. Как реализовать пользовательский генератор токенов csrf в laravel?

1 ответ

  1. Можно создать маркер OldTokenClassи передать его во все представления. Тем не менее, мне трудно размышлять о том, что должно быть в OldTokenClassинформации, которую вы предоставляете. По сути, вы должны иметь возможность генерировать или получать старый маркер приложения из этого класса.

    Что-то вроде

    //Route
    use App\Service\OldTokenClass;
    
    view()->composer('*', function ($view) {
        $tokenGen =  new OldTokenClass();
    
        return $view->with('old_crsf_token', $tokenGen->get());
    
    });
    

    Тогда в вашем макете вида вы могли бы сделать что-то вроде

        <meta name="old-csrf-token" content="{{$old_crsf_token}}">
    

    и используйте его с угловым.