3

アプリからドロップボックス 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);

});

最初のコントローラーではすべて問題ありません。ドロップボックスのログインページにリダイレクトします。ユーザー名とパスワードを入力すると、ページが指定された uri にリダイレクトされ、次の例外 csrf not found 例外が発生します。

4

1 に答える 1

5

推測にすぎませんが、session_start()どこかで (ページの読み込みごとに) 行っていることを確認してください。

そうでない場合、デバッグの次のステップは、セッション変数を手動で設定し、それを別のページで読み戻して、セッション ストレージが機能していることを確認することです。

于 2013-12-22T19:22:53.020 に答える