2010-12-05 5 views
2

Facebook Connectを使用して複数のフロントエンドクライアントを持つアプリケーションをシングルサインオンソリューションとして作成しています。Facebook Connectセッションの確認

これらのクライアントの1つは、たとえばiOSプラットフォーム上で実行されているため、すべてのfb認証はiOS Facebook SDKを介してクライアント上で行われます。しかし、ユーザーがクライアントで認証した後、私はFacebookにサインインして私たちのサイトにログインしているので、サーバーがクライアントから認証データを受け取り、それを確認することはありますか?

答えて

1

Javascript SDKを使用して、FB.getSession()を呼び出して、さまざまな認証関連ビットを持つJSオブジェクトを取得します。これらのうち、 'access_token'、 'expires'、 'secret'、 'session_key'、 'uid'、 'sig'をサーバーに渡します。コールが本物であれば、このような "access_tokenは= 1290380d9e &期限が切れる= 92d903 &秘密= e9cj9kd & SESSION_KEY = s49i9i3f &はuid = 12345" などの文字列にこれらのCONCAT、チェックするために、サーバー側で

。だから、あなたが通過したばかりのすべては、sigを除いて。

この文字列には、Facebook developer siteから取得できる「アプリの秘密」を連結します。文字列のMD5 hexdigest(Python import md5; md5.new(foobar).hexdigest())を取り出し、渡した 'sig'と同じかどうか比較してください。