2017-06-02 2 views
0

私は本当に面倒な問題を抱えています。バーチャルボックスの中でLaravelを試してみましたが、今では自分のアプリケーションが自分のサーバー上で稼働する準備ができているように感じました。そのため、プロジェクト全体を自分のサーバーにアップロードし、ストレージとブートストラップ/キャッシュフォルダに権限を与えました。Laravel Socialiteは、ローカル環境から移動した後に壊れました。

私はユーザーを認証するためにツイッチでSocialiteを使用しています。 .envファイルに(key、secret、NEW redirect url)のような必要なものをすべて追加し、私のtwitchアプリケーション設定内でリダイレクトURLを変更しました。何らかの理由で私はもうログインできません。私はいつも次のエラーを受け取ります。

(1|1) InvalidStateException 
in AbstractProvider.php (line 32) 
at AbstractProvider->user() 
in TwitchAuthController.php (line 34) 
at TwitchAuthController->handleProviderCallback() 
at call_user_func_array(array(object(TwitchAuthController), 'handleProviderCallback'), array()) 
in Controller.php (line 55) 

TwitchAuthController.phpライン34は、すべての悪いことが起こることを始めるところだ、このようになります; P

$user = Socialite::driver('twitch')->user(); 

私はまだ、私はそれをdevolopと同期して、そこから自分の仮想ボックスのプロジェクトを持っています私の "本当の"サーバーでは、これは両方のプロジェクト(仮想ボックスとサーバー)がまったく同じであることを意味します。私の.envファイルのリダイレクトURLを変更して、仮想設定のIPに戻すと、ログインは正常に機能します。私はなぜそれが完璧にそこで動作するのかわかりませんが、私は私のサーバーの設定を調整しません。

「SESSION_DOMAIN」のenvで対処する予定がある可能性があります。

SESSION_DOMAIN=http://example.com 

それはまだ同じエラーを得たので、私はにリダイレクトURLを戻す:

は、私は1つにすることを変更し

TWITCH_REDIRECT_URI=http://1.2.3.4/twitch/callback 

とも単収縮APIサイトのURLを変更しました自体。その後、私は試してみましたが、私は私のライブプロダクションウェブサーバーに同じエラーが発生しました。だから私はSESSION_DOMAINを.envから完全に削除して、それが私のバーチャルボックスで再び働き始めました。どういうわけか、これは私が推測するセッション関連のようです。私のバーチャルボックス上の正確に同じクローンが完璧に動作するのはなぜか分かりませんが、コードはまったく同じですが、実際のWebサーバーでは機能しません。違いはリダイレクトURLだけです。

ご意見はありませんか?

ベスト

ベストトム

答えて

0

私はこの問題は、あなたがこの画像を確認、単収縮アプリケーションの設定でリダイレクトURLを変更 `tをということだと思います。 screen

+0

こんにちは、私はそれをしました。それは私が "... twitch apiサイト自体のURLを変更したことが意味するものです。" – wordiboi

0

何らかの理由で、クエリ文字列が私の実際の環境で渡されていないようです。リクエストを自分のコールバックハンドラに追加し、結果をdd($requestと表示しました)。

最初の例は、1つのクローンが現在実行されている仮想ボックスのIPに設定(.envファイルのtwitchリダイレクトurl + twich apiサイト自体)を調整したときです。

+server: ServerBag {#42 ▼ 
    #parameters: array:35 [▼ 
     "USER" => "www-data" 
     "HOME" => "/var/www" 
     "HTTP_COOKIE" => "XSRF-TOKEN=blahhhblaaaaah ▶" 
     "HTTP_ACCEPT_LANGUAGE" => "en-US,en;q=0.8" 
     "HTTP_ACCEPT_ENCODING" => "gzip, deflate, sdch" 
     "HTTP_REFERER" => "http://1.1.1.1/" 
     "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" 
     "HTTP_USER_AGENT" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36" 
     "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" 
     "HTTP_CONNECTION" => "keep-alive" 
     "HTTP_HOST" => "1.1.1.1" 
     "REDIRECT_STATUS" => "200" 
     "SERVER_NAME" => "_" 
     "SERVER_PORT" => "80" 
     "SERVER_ADDR" => "192.168.1.10" 
     "REMOTE_PORT" => "65268" 
     "REMOTE_ADDR" => "1.1.1.1" 
     "SERVER_SOFTWARE" => "nginx/1.10.0" 
     "GATEWAY_INTERFACE" => "CGI/1.1" 
     "REQUEST_SCHEME" => "http" 
     "SERVER_PROTOCOL" => "HTTP/1.1" 
     "DOCUMENT_ROOT" => "/home/tom/site/public" 
     "DOCUMENT_URI" => "/index.php" 
     "REQUEST_URI" => "/twitch/callback?code=somecode12345&scope=user_read+user_subscriptions&state=somestate121411" 
     "SCRIPT_NAME" => "/index.php" 
     "CONTENT_LENGTH" => "" 
     "CONTENT_TYPE" => "" 
     "REQUEST_METHOD" => "GET" 
     "QUERY_STRING" => "code=somecode12345&scope=user_read+user_subscriptions&state=somestate121411" 
     "SCRIPT_FILENAME" => "/home/tom/site/public/index.php" 
     "PATH_INFO" => "" 
     "FCGI_ROLE" => "RESPONDER" 
     "PHP_SELF" => "/index.php" 
     "REQUEST_TIME_FLOAT" => 1496424273.7195 
     "REQUEST_TIME" => 1496424273 
    ] 

これは私のサーバー上のライブ環境のURL設定を変更したときの結果です((。envファイルtwitchリダイレクトURL + twich apiサイト自体)

+server: ServerBag {#42 ▼ 
    #parameters: array:35 [▼ 
     "USER" => "www-data" 
     "HOME" => "/var/www" 
     "HTTP_COOKIE" => "sometoken17414115 ▶" 
     "HTTP_ACCEPT_LANGUAGE" => "en-US,en;q=0.8" 
     "HTTP_ACCEPT_ENCODING" => "gzip, deflate, sdch" 
     "HTTP_REFERER" => "http://example.com/" 
     "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" 
     "HTTP_USER_AGENT" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36" 
     "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" 
     "HTTP_CONNECTION" => "keep-alive" 
     "HTTP_HOST" => "example.com" 
     "REDIRECT_STATUS" => "200" 
     "SERVER_NAME" => "example.com" 
     "SERVER_PORT" => "80" 
     "SERVER_ADDR" => "3.3.3.3" 
     "REMOTE_PORT" => "51008" 
     "REMOTE_ADDR" => "9.9.9.9" 
     "SERVER_SOFTWARE" => "nginx/1.10.0" 
     "GATEWAY_INTERFACE" => "CGI/1.1" 
     "REQUEST_SCHEME" => "http" 
     "SERVER_PROTOCOL" => "HTTP/1.1" 
     "DOCUMENT_ROOT" => "/var/www/site/public" 
     "DOCUMENT_URI" => "/index.php" 
     "REQUEST_URI" => "/twitch/callback?code=somecode12345&scope=user_read+user_subscriptions&state=somestate121411" 
     "SCRIPT_NAME" => "/index.php" 
     "CONTENT_LENGTH" => "" 
     "CONTENT_TYPE" => "" 
     "REQUEST_METHOD" => "GET" 
     "QUERY_STRING" => "" 
     "SCRIPT_FILENAME" => "/var/www/site/public/index.php" 
     "PATH_INFO" => "" 
     "FCGI_ROLE" => "RESPONDER" 
     "PHP_SELF" => "" 
     "REQUEST_TIME_FLOAT" => 1496425556.5687 
     "REQUEST_TIME" => 1496425556 
    ] 

この結果には2つの違いがあります。 (バーチャルボックスシステム上の)私の作業の例では、結果としてindex.php示しながら

http://example.com/twitch/callback?code=n60im8s9c7cmvffn705jwzjbtx76ea&scope=user_read+user_subscriptions&state=8AcRvwvRcupj6lrJmYYvM6Q70A9OZEBRIRGXiQxb 

そしてPHP_SELFも空である:私は、これは、このようなルックスから生じ得るアドレスは本家まずQUERY_STRINGの空です。

私は現在、かなりの時間24時間立ち往生していますが、この詳細を見つけたにもかかわらずまだそれを理解できません。

0

うわー私はとても馬鹿です。私はそれがローカル環境から私のサーバーへの移行に関係していたので、最後の24時間で無駄な時間を無駄にしました。最初は、パーミッション/セッションの問題などについて考えていました。私が最後の1時間に見つけたQUERY_STRING問題に関するいくつかの調査を行った後、私は自分のウェブサーバーの設定をもう一度確認しました。私はただばかだと分かります。私は単に私の開発環境からのnginx php-fpm設定をコピーしたと誓っても間違いがあった。

try_files $uri $uri/ /index.php$query_string; # Looked like this 
try_files $uri $uri/ /index.php?$query_string; # Should have been this... 

このように、これはすべて単純な疑問符です。

他のものはすべて、ニュースへのルートのように完璧にうまくいっていて、ニュースなどを編集しているのはまだ不思議です。私はこのすべてがQUERY_STRINGパラメーターも使用していることに気付いています。

関連する問題