会话中缺少CSRF令牌

时间:2017-06-16 13:47:28

标签: php dropbox dropbox-api dropbox-php

我正在创建可以从Dropbox中获取文件和文件夹的应用程序,并将显示在网页中。我有以下代码。

$appInfo=new Dropbox\AppInfo($dropboxKey,$dropboxSecret);
//store CSRF token
$csrfTokenStore = new Dropbox\ArrayEntryStore($_SESSION,'dropbox-auth-csrf-token');
$webAuth = new Dropbox\WebAuth($appInfo,$appName,'path',$csrfTokenStore);

当我执行代码时出现以下错误:

  

致命错误:未捕获的异常'Dropbox \ WebAuthException_BadState',并显示消息'会话中缺少CSRF令牌。

1 个答案:

答案 0 :(得分:0)

问题正在发生,因为会话中没有dropbox-auth-csrf-token值。当您检查ArrayEntryStore文件时,您会发现有类似 get(),set(),clear()的函数。这里清除函数将取消设置csrf令牌。

你需要做的是你需要将csrf标记值存储在数据库中,并且当同一个用户需要获取值并将其传递给ArrayEntryStore时,也需要这样做。