PHP用Evernote Cloud SDKを使用しています(here)。 EvernoteのクラウドSDKの次の行によるとEvernoteクラウドSDKを使用して、自分のlaravelアプリケーションでheader()リダイレクトが機能しない
class OauthController extends Controller
{
public function reqToken()
{
$oauthHandler = new OauthHandler(env('EVERNOTE_SANDBOX', 'true'));
$callback = 'http://localhost/auth'; //temp
$oauthData = $oauthHandler->authorize(env('EVERNOTE_KEY', ''), env('EVERNOTE_SECRET', ''), $callback);
}
}
:私のコードで
、私は彼らのサンプルのOAuthに似何かしようとしています、私はコントローラにコードを配置している( hereを見つけました)header($authorizationUrl);
が、私はコードのこの行はは、呼び出さないことを見ることに私の方法をデバッグしている、そしてまだ私のページが0に再ルーティングされません:コードはauthorize()
下と呼ばれていますあるは、:
"場所:https://sandbox.evernote.com/OAuth.action?oauth_token=token"
私は空白のlaravelページに滞在してしまいます。それが助け場合
は、ここに私のルートである:私は、ヘッダの機能上の情報のためのドキュメントで探してみました
Route::get('/auth', '[email protected]');
が、それは私のためにめちゃくちゃだ理由を示す何も表示されませんでした。何か案は?
'header()'関数が呼び出された後、 'die;'または 'exit;'でリクエストを強制終了し、ページ上に何も出力しないでください。あなたの ' - > authorize()'コールの後にそれを追加してみてください。もう一つはヘッダがすでに送られているので、実際にはブラウザに送られていません。 –
'exit() 'うまくいった!なぜこれが分かっていますか?私が知る限り、彼らはそのサンプルアプリケーションでそれをしないのですか? (私は上記の例をリンクしています)。また、この 'exit()'メソッドを使用するのは "ok"ですか、それともちょっとした仕事ですか? – k4kuz0
あなたはあなたのメソッドが呼び出された後、ヘッダが完全に送信されず、Laravelが何かをやり続けるということは、このヘッダを破損したり、オーバーライドして問題を引き起こしたりする可能性があります。ヘッダーが設定された直後にexitまたはdieを呼び出すと、Laravelがデフォルトで提供する余分なオーバーヘッドがすべてスキップされます。 –