dropbox php sdk error Отсутствует токен CSRF в сеансе

Я использую Dropbox PHP SDK из моего приложения, я пытаюсь получить доступ к основному API, используя следующий код

function getWebAuth()
{

$appInfo = dbx\AppInfo::loadFromJsonFile("../dropbox.json");
$clientIdentifier = "My-demo-app/1.0";
$redirectUri = "http://localhost/demo.app/public/dropbox-finish-oauth";
$csrfTokenStore = new dbx\ArrayEntryStore($_SESSION, 'dropbox-auth-csrf-token');
return new dbx\WebAuth($appInfo, $clientIdentifier, $redirectUri,$csrfTokenStore);

}

//My controller => http:://localhost/demo.app/public/dropbox

Route::get('dropbox',function(){

$authorizeUrl = getWebAuth()->start();

return Redirect::to($authorizeUrl);

});

//dropbox redirect uri

Route::get('dropbox-finish-oauth',function(){

  list($accessToken, $userId, $urlState) = getWebAuth()->finish($_GET);

});

Все хорошо, в первом контроллере он перенаправляет на страницу входа в Dropbox, я заполняю имя пользователя и пароль, а затем страница перенаправляется на указанный URI, и я получаю следующее исключение CSRF не найден исключение

1 ответ

Решение

Просто предположение, но убедитесь, что вы делаете session_start() где-то (на каждой странице загрузки).

Если это не так, возможно, следующий шаг в отладке - вручную установить переменную сеанса и прочитать ее на другой странице, чтобы убедиться, что хранилище сеанса работает.

Другие вопросы по тегам