Dropbox Отсутствует токен CSRF в сеансе

Я уже нашел несколько сообщений по этому поводу, но мне пока не помог ни один ответ.

Вот мой файл «запроса»:

<?php

require_once "Dropbox/Dropbox/autoload.php";
use \Dropbox as dbx;

function getWebAuth(){
session_start();
$appInfo = dbx\AppInfo::loadFromJsonFile("configdbx.json");
$clientIdentifier = "Fototeca/1.0";
$redirectUri = "https://myurl.com/info.php";
$csrfTokenStore = new dbx\ArrayEntryStore($_SESSION, 'dropbox-auth-csrf-token');
return new dbx\WebAuth($appInfo, $clientIdentifier, $redirectUri, $csrfTokenStore);
}

echo "teste";

error_reporting(E_ALL);
ini_set('display_errors', 1);

$authorizeUrl = getWebAuth()->start();
header("Location: $authorizeUrl");
?>

Этот парень работает отлично.

Когда он перенаправляется в файл «info.php», где он должен запускать запросы, он показывает мне отсутствующую ошибку CSRF:

Файл info.php:

<?
require_once "Dropbox/Dropbox/autoload.php";
use \Dropbox as dbx;

function getWebAuth(){
session_start();
$appInfo = dbx\AppInfo::loadFromJsonFile("configdbx.json");
$clientIdentifier = "Fototeca/1.0";
$redirectUri = "https://myurl.com/info.php";
$csrfTokenStore = new dbx\ArrayEntryStore($_SESSION, 'dropbox-auth-csrf-token');
return new dbx\WebAuth($appInfo, $clientIdentifier, $redirectUri, $csrfTokenStore);
}

try {
list($accessToken, $userId, $state) = getWebAuth()->finish($_GET);
}
catch (dbx\WebAuthException_BadRequest $ex) {
echo("/dropbox-auth-finish: bad request: " . $ex->getMessage());
// Respond with an HTTP 400 and display error page...
}
catch (dbx\WebAuthException_BadState $ex) {
// Auth session expired.  Restart the auth process.
//header('Location: /request.php');
echo('Location: /request.php');
var_dump($ex);
}
catch (dbx\WebAuthException_Csrf $ex) {
echo("/dropbox-auth-finish: CSRF mismatch: " . $ex->getMessage());
var_dump($ex);
// Respond with HTTP 403 and display error page...
}
catch (dbx\WebAuthException_NotApproved $ex) {
echo("/dropbox-auth-finish: not approved: " . $ex->getMessage());
}
catch (dbx\WebAuthException_Provider $ex) {
echo("/dropbox-auth-finish: error redirect from Dropbox: " . $ex->getMessage());
}
catch (dbx\Exception $ex) {
echo("/dropbox-auth-finish: error communicating with Dropbox API: " . $ex->getMessage());
}

// We can now use $accessToken to make API requests.
$dbxClient = new dbx\Client($accessToken, "PHP-Example/1.0");
?>

Сеанс_старт есть.

Ошибка возникает в «list ($ accesstoken … = getWebAuth () -> finish ($ _ GET);», и отправляет меня на второй перехват, а $ ex var_dump выглядит так:

object(Dropbox\WebAuthException_BadState)#5 (7) { ["message":protected]=> string(30) "Missing CSRF token in session." ["string":"Exception":private]=> string(0) "" ["code":protected]=> int(0) ["file":protected]=> string(77) "/home/storage/7/48/18/myurl/public_html/Dropbox/Dropbox/WebAuth.php" ["line":protected]=> int(230) ["trace":"Exception":private]=> array(1) { [0]=> array(6) { ["file"]=> string(58) "/home/storage/7/48/18/myurl/public_html/info.php" ["line"]=> int(16) ["function"]=> string(6) "finish" ["class"]=> string(15) "Dropbox\WebAuth" ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> array(2) { ["state"]=> string(24) "RfkdmUNynjaof7rylfXsQw==" ["code"]=> string(43) "x7QaUiXWwCEAAAAAAAAMxJ3ptKdTsMdJhkDmrUZ2ZcM" } } } } ["previous":"Exception":private]=> NULL }

0

Решение

Спасибо, смаркс!

я нашел это Переменные сессии не работают php

И понял, что мой адрес судьбы отличался от первого

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector