私は、FacebookがさまざまなWebアプリケーション(FacebookとMessenger)でユーザーセッションをどのように管理しているかに興味を持っています。私がMessenger Webアプリに入ると、Facebookにログインしていることが分かり、このアプリを使用できるようになります。私はどの技術が私にそれを達成させるかを知りたいのですが(Redisかもしれませんか?)、または彼らがどのように同じセッションを共有することができますか?Facebookはどのようにユーザーセッションを管理していますか?
1
A
答えて
1
messenger.com
は、facebook.com
にajaxリクエストを行い、ユーザーがそこにログインしているかどうかを取得します。
messenger.com
で認証されると、facebook.com
セッションに関係なく新しいセッションが作成されます。
開発ツールからのネットワークタブで見ることができるなされる要求:
POST https://www.facebook.com/login/async_sso/messenger_dot_com/?dpr=1&__a=1
このエンドポイントは(このため、応答ヘッダの)クロスオリジン・リクエストを作成するmessenger.com
ことを可能にする:
access-control-allow-origin: https://www.messenger.com
x-auth-result
には、Facebookアカウントに関する情報がbase64で送信され、JSON.parse(atob(...))
を使用して解析されます。
例えば、鉱山はこのように見えた:
X-Auth-Result: eyJ1c2VyaWQiOi....sd1EifQ==
その後、彼らはない:
var n = m.getResponseHeader('X-Auth-Result');
if (n) {
var o = JSON.parse(atob(n));
c('Arbiter').inform('messengerdotcom_fb_session_info', o);
}
o
は、私の場合には、次のようになります。その後、
{
"userid": "1000....756",
"name": "Ionică Bizău",
"secret": "P0....r",
"persistent": true,
"initial_request_id": "AfU...lwQ"
}
とし、彼らは最終的にあなたのフルネームをボタンに表示することができます。
{
"userid":"0",
"initial_request_id":"A6...YOd"
}
関連する問題
- 1. SlashDBでユーザーセッション管理を行うにはどうすればよいですか?
- 2. Facebookはどのようにデータベースを管理していますか?
- 3. Facebookのアクセストークンを管理するにはどうすればよいですか?
- 4. バージョン番号管理 - どのようにしていますか?
- 5. asp.netでのユーザーセッション管理
- 6. codeigniterの管理者とユーザーセッション
- 7. クライアント側で現在のユーザーセッションを管理するにはどうすればよいですか?
- 8. React-NativeのFacebook SDKはどのようにログイン情報を管理していますか?
- 9. Wikipediaはデータベース内のリンクをどのように管理していますか?
- 10. myfontsはウェブフォントのページビューをどのように管理していますか?
- 11. コンパイラはどのようにメモリフットプリントを管理しますか?
- 12. sqlite3はSELECTクエリデータをどのように管理しますか?
- 13. Tomcatはどのようにセッションを管理しますか?
- 14. stackoverflowはタグをどのように管理しますか
- 15. Tensorflowはどのようにグラフを管理しますか?
- 16. MSMQはどのようにメッセージを管理しますか?
- 17. s3n/s3aはどのようにファイルを管理しますか?
- 18. Lagomはコミュニケーションパターンをどのように管理していますか?
- 19. Flink(カフカソース)はどのようにオフセットを管理していますか?
- 20. HSQLDBはどのようにインデックスを管理していますか?
- 21. Wpfは静的リソースをどのように管理していますか?
- 22. バージョン管理はどのように機能しますか?
- 23. monodevelopバージョン管理はどのように機能しますか?
- 24. ドッカーはコンテナの新しいファイルをどのように管理しますか?
- 25. 複数のバージョンのデータベースをどのように管理していますか?
- 26. bddの機能とシナリオをどのように管理していますか?
- 27. バージョン管理を利用して写真コレクションを管理するにはどうすればよいですか?
- 28. インタビュアー: "どのように依存関係を管理していますか?"
- 29. Wordpressデータベースがどのようにセクションを管理していますか?
- 30. Perlでどのように設定ファイルを管理していますか?
グレート答え:ユーザーがログインしていない場合は
、Facebookは
userid: "0"
バックを送信します!御時間ありがとうございます! –