Php Dropbox API不再工作,CSRF不匹配

Php Dropbox API不再工作,CSRF不匹配,php,dropbox,csrf,dropbox-api,dropbox-php,Php,Dropbox,Csrf,Dropbox Api,Dropbox Php,我使用Dropbox PHP SDK。一切都很正常,突然间,身份验证过程不再工作,而该区域的代码没有任何更改 我收到错误“CSRF不匹配” 当查看URL中的所有CSRF标记时,所有标记似乎都是正确的: CSRF令牌匹配。日志显示,他们并非如此: [15-May-2015 12:09:44 UTC] /dropbox-auth-finish: CSRF mismatch: Expected 'sW2Zy4OD7YBijNHaeCtyjQ==', got 'L9yH1hf7pgiOY7j7fsF

我使用Dropbox PHP SDK。一切都很正常,突然间,身份验证过程不再工作,而该区域的代码没有任何更改

我收到错误“CSRF不匹配”

当查看URL中的所有CSRF标记时,所有标记似乎都是正确的:

CSRF令牌匹配。日志显示,他们并非如此:

[15-May-2015 12:09:44 UTC] /dropbox-auth-finish: CSRF mismatch: Expected 'sW2Zy4OD7YBijNHaeCtyjQ==', got 'L9yH1hf7pgiOY7j7fsFegA=='

我与Dropbox API支持人员进行了交谈。他们非常有帮助,并提出了一些建议:

此错误表示状态值返回到重定向 URI与会话中存储的CSRF令牌不匹配。这个 示例重定向URI上的状态值与给定的状态值匹配 但要将/authorize URL添加到,所以问题似乎出在 存储在会话中的值。我想到了一些可能会发生的事情 原因如下:

  • 是否要为单个应用程序授权流多次调用WebAuth.start?如果是这样,您可能正在存储CSRF令牌 对于一个,但正在与另一个一起浏览到/authorize URL
  • 会话存储是否工作不正常?Dropbox PHP SDK使用传递给WebAuth构造函数的csrfTokenStore。如果 无法存储新的CSRF令牌,或正在返回过时的值, 这可能导致这种不匹配
  • 您是否在应用程序的不同实例之间切换,从而访问不同的会话

这是第一个理论化的问题。在后台发生了一个AJAX调用,它的登录检查也重定向到授权页面,从而创建了多个请求。禁用此选项后,问题就消失了。

如果将令牌更改为
SW2ZY4OD7YBIHnHaectyJQ==
是否有效?否,因为当我从错误中复制预期代码时,下次使用该代码时,该代码无效,并被另一个代码替换。同一问题: