0

だから私はFacebookのoauthを中心にアプリを構築しており、fbsr_トークンを使用してログインユーザーを識別したいと考えていました(facebook-jsが私のサイトと同期しているように)。

残念ながら、これらの fbsr_* Cookie は 1 日以内に期限切れになるように設定されているようです。つまり、ユーザーが 1 日後に私のサイトにアクセスすると、Cookie がなく、ログアウトした状態で表示されます。

次に、facebook-js が実行され、認識され、fbsr_* Cookie が作成され、コールバックが返されます。ハード ページの更新 (かなり耳障りです) を実行するか、ファンシーなインプレース ajax 更新 (大量の複雑なコード、それでも少し耳障りです) を実行するかを選択できます。ユーザーがシームレスにログインしたままになるように、これらの Cookie の有効期限が長くない理由はありますか? ほとんどの Web サイトでは、ログイン時に常に Cookie の有効期限が切れるのを避けるために「私を記憶」することが許可されています。

これについて私にできることはありますか?おそらく、ID と Cookie の有効期限を自分で管理する serverside-oauth に切り替えることができると思います (はい?)。しかし、 clientside-oauth にそのような制限があるのは奇妙に思えるので、何かが欠けていることを願っています。

4

1 に答える 1

1

これについて私にできることはありますか?

いいえ、そうではありません。

ユーザーが現在 Facebook にログインしているかどうかを判断する唯一の方法は、ドメイン facebook.com に設定された Cookie を調べることです。

JS SDK はクライアント側で実行され、クロスドメイン リクエストを作成してこれらの Cookie が設定されているかどうかを確認できるため、これを行うことができます。

ただし、ドメインからサーバー側でこれらの Cookie を確認する方法はありません。サーバーは、独自のドメインに設定された Cookie にのみアクセスできます。

ID と Cookie の有効期限を自分で管理する serverside-oauth におそらく切り替えることができると思います (はい?)

ドメインに独自の Cookie を設定すると、独自のログイン システムが実装されます。

また、JS SDK がドメインに設定する Cookie を「偽造」したとしても、同じ結果にはなりません。

ドメインに「はい、ユーザー XYZ は Facebook にログインしています」という Cookie があるかもしれませんが、そうである必要はありません。その間に Facebook からログアウトできたかもしれませんが、Cookie にはそれがまったく反映されません。したがって、fe が自分のアプリから私の代わりに何かを投稿するなど、次に何をしようとしても、私がまだ Facebook にログインしているとしか思えないため、失敗する可能性が高くなりますが、実際には有効なアクセス トークンを持っていません。私は Facebook に実際にログインしていないので、

次に、facebook-js が実行され、認識され、fbsr_* Cookie が作成され、コールバックが返されます。ハード ページの更新 (かなり耳障りです) を実行するか、ファンシーなインプレース ajax 更新 (大量の複雑なコード、それでも少し耳障りです) を実行するかを選択できます。

これらが唯一の実行可能なオプションです。

于 2012-10-05T08:25:41.170 に答える