0

Facebookセッションが私のアプリケーションで期限切れになったら、Javascript SDKを使用して新しいセッションを作成する必要があります。これは、検出サーバー側の大部分をやっているので時々ログアウトするように見えるため、非常に面倒です。そして、ページをリロードしてJavaScriptが実行されると、セッションが再作成されます。PHP SDKがFacebookセッションを設定できないのはなぜですか?

JavaScriptを使って「ページをリロードしてください」というメッセージ(StackOverflowとよく似ています)を表示することで非常に簡単に解決できますが、私はユーザーにこれをさせたくありません。私はPHPのSDKはそれを行うことはできませんが、Javascriptの代わりにPHPを使用して自分自身で達成するために何かできることはありますか?

誰でもPHPがこれを行うことができない理由を説明できますか?

答えて

1

PHPはあなたのサーバーで動作していますが、これはFacebookのサーバーとは関係ありません。クッキーは元のドメインにロックされています。 Cookieはあなたのサーバーによって設定されたように見え、 "facebook.com"ではなく、 "yoursite.com"の元のドメインを持っています。一方、JSは、クライアント上で動作し、Facebookのサーバーに対して行われた要求は、Facebookサーバーによって設定されたすべてのCookieに従います。

+0

PHPはcurlやfile_get_contentsを使ってクッキーを設定するPHPページをリクエストできませんか?あるいは、これらのヘッダーにクッキーが含まれないのでしょうか? –

+1

あなたはどんなクッキー操作もすることができますが、アプリがクライアントに送るクッキーはあなたのサーバーのドメインにロックされます。あなたのサーバーは、実際にfacebookサーバーに送信されるfacebook cookieを設定することはできません。なぜなら、cookieはサーバーに戻されるからです。これが可能であれば、ユーザーの銀行ウェブサイト(たとえば、 –

+0

)でCookieを盗み/設定することは自明ではありません。私はそれを完全に理解していません。 Facebookのドメインはfacebookのためのクッキーを設定しなければなりません、これは常識です。つまり、私のサーバーは、前述の機能の1つを使用してfacebookドメイン上のページを呼び出し、結果としてfacebookサーバーからfacebook cookieを設定できますか?例えばfile_get_contents(facebook.com/cookie.php)?それとも私のサーバーから来ているので、これは動作しませんか? –

関連する問題