0

Node.js で作成している Web サービスに接続する Facebook 認証のネイティブ モバイル アプリ (Windows Phone) を構築しようとしています。

ユーザーに次のことをお願いします。

  • ネイティブ UI または Web ウィンドウを介して、モバイル アプリで Facebook にログインします。
  • ログインに成功したら、その ID に関連付けられたサーバー側のユーザー アカウント データを作成またはアクセスします
  • 認証されたセッションを使用して、ネイティブ モバイル アプリを介してそのユーザーのデータに対して後続の認証されたリクエストを行います

私の質問は次のとおりです。ここで最善のアプローチは何ですか?

するべきか...

  1. クライアントをモバイル アプリでローカルに facebook にログインし、アクセス トークンをノード サービスに渡し、Facebook アカウント ID に基づいてユーザーをサービス データにマップしますか? そのトークンを URL に渡すだけでは、非常に安全ではないようです。
  2. アプリ内のモバイル ブラウザー ウィンドウを介してユーザーをログインさせ、同じウィンドウで Node サービスにリダイレクトしますか? 後続の認証済みリクエストをアプリでネイティブに行うにはどうすればよいですか?
  3. まったく別のことをしますか?

申し訳ありませんが、これは非常にオープンエンドですが、これらを結び付けたのはこれが初めてであり、各部分には多くの情報がありますが、この設計の全体的なパターン/ベストプラクティスを説明するものをまだ見つけていません.

4

1 に答える 1

1

あなたの質問は非常に意見に基づいています...しかし、それでも私は助けようとします.

まず、URL でアクセス トークンを渡すことができます。https を使用する場合は安全ではありません。モバイル アプリから facebook にログインした場合でも、URL のみでアクセス トークンを渡すことになります。http://something.com/access_tokenにトークンを持っていることを意味する場合は、その方法ではありません。

Oauth 2.0 ドラフトを調べると、値が token と token_type であるヘッダー Authorization を設定することで行われることがわかります。ドラフトをよく見てください。

あなたの解決策として、アプリで言及したようにヘッダーでアクセストークンを送信し、リクエストごとにfacebookからそのトークンを認証することにより、質問で言及された最初の方法を使用するだけで問題ないと思います。これが Facebook からのすべてのリクエストを認証するためのフローが長すぎると思われる場合は、モバイル アプリからサーバーにリクエストを送信してアクセス トークンを取得し、サーバーにアクセス トークンを処理させて、それぞれを認証できるデータベースに保存することができます。リクエスト。いずれにせよ、Passportモジュールを見てみましょう。これには facebook やその他の認証が組み込まれており、必要に応じて十分なはずです。

于 2013-07-10T05:13:12.017 に答える