Я работаю с пакетом SammyK/Facebook и сталкиваюсь с проблемой входа в facebook через CSRF. Раньше он работал нормально, но позже мне пришлось отключить защиту CSRF в моем kernel.php для бесперебойной работы API. Теперь я его обновил и добавил следующие строки в промежуточногоОшибка проверки подписи на основе перекрестного запроса. Обязательное условие «состояние» отсутствует. Laravel Sammyk/Facebook package
public function handle($request, Closure $next) {
$skip = array(
'api/v1/signup',
'api/v1/login',
'api/v1/addContacts',
'api/v1/email'
);
foreach ($skip as $key => $route) {
//skip csrf check on route
if($request->is($route)){
return parent::addCookieToResponse($request, $next($request));
}
}
return parent::handle($request, $next);
}
Таким образом, это позволяет веб и апи работать, как ожидалось, но так как я отключил CSRF я получаю запрос проверки подлог Межсайтовые не удалось. Обязательное условие «состояние» отсутствует, когда я делаю логин FB. Я пытался отлаживать и находить в FacebookRedirectLoginHelper функция validateCsrf()
не получает сохраненное состояние $savedState = $this->persistentDataHandler->get('state');
Я не уверен, как решить это, так как в идеале он должен работать. Я попытался напечатать как состояние $, так и $ savedState, и я получаю $ savedState как null.
class FacebookController extends Controller {
public function fbConnect(LaravelFacebookSdk $fb)
{
// Obtain an access token.
try {
$token = $fb
->getRedirectLoginHelper()
->getAccessToken();
} catch (Facebook\Exceptions\FacebookSDKException $e) {
dd($e->getMessage());
}
// Access token will be null if the user denied the request
// or if someone just hit this URL outside of the OAuth flow.
if (! $token) {
// Get the redirect helper
$helper = $fb->getRedirectLoginHelper();
if (! $helper->getError()) {
abort(403, 'Unauthorized action.');
}
// User denied the request
dd(
$helper->getError(),
$helper->getErrorCode(),
$helper->getErrorReason(),
$helper->getErrorDescription()
);
}
Где я вызываю код сеанса .... в login.php или войдите-callback.php – deemi