2017-04-04 10 views
0

私は私のサーバー上(Collectorそれを呼び出す)単一のページのアプリを持っていると同じように私のユーザーは、リンクのカスタマイズ可能なリストを持っているしたいと思います:彼らは、新しい/そのリンクダイアログにリンクを削除を追加することができますこの特定の状況のた​​めに選択するOauth2の流れは?

facebook.com/get_my_latest_posts_about_cats github.com/get_my_comments_for_repo_LinuxKernel anynews.com/get_my_soccer_news

ボックスごとに。

私がしようとしているのは、facebook,github,news ...サーバーからデータを取得するたびにログインする苦痛を軽減することです。

もちろん、ユーザーがリンクを初めてクリックすると、リンクのそれぞれのログインページが表示されます(例:facebook.com/get_my_latest_posts_about_cats - >facebook.com/login)。その後、アクセストークンと私のCollector databaseです。そのため、次回以降にパスとユーザー名を書く必要はありません。

私の質問:

(私はこれがどのように機能するかについての誤った考えを取得しないように、少なくともそれは、どんな意味があるなら、私に教えてください)

  • 私がわかりません私がCollectorウェブアプリケーションを初めて実装しているので、フロー全体をauthentication processも新しいものにする必要があります。
  • user agentフローについて考えました。を私のCollectorデータベースに保存したいとは思いません。

答えて

1

シングルページアプリの場合、通常、暗黙のフローを使用するのが最適です。この方法では、アクセストークンはフロントエンド部分にのみ取得されます。アクセストークンはリダイレクトURLのハッシュ部分(「#」の後にあります)にあるため、ブラウザに残っていますが、コレクタのバックエンドには到達しません。 OAuth2サーバー。その後、ブラウザのSessionStorageにアクセストークンを保存して、リロードを引き継ぐことができます。しかし、このフローを使用する場合、HTTPSを使用する必要があります。それ以外の場合は安全ではありません(アクセストークンは安全でないチャネルを介して転送されます)。

現在の有効期限が切れる前に新しいトークンを取得したいことがあります。これは通常、iframeを使用して行われますが、具体的なOAuth2サーバーの実装に依存します。 OpenId Connect(OAuth2拡張機能)のhttp://openid.net/specs/openid-connect-session-1_0.htmlをチェックすることができます。

+0

ありがとうございました!初めてのことをするときに初心者の質問がたくさん出ます。 – Oleg

+1

はい、OAuth2は、多くの経験がなくても意思決定が必要な場合は非常に困難です。 –

+0

もう1つのことですが、暗黙のフローを実装すると、初めて自分のFacebookの投稿を受信したい場合、jsスクリプトはFacebookページにリクエストを行い、ログインページが必要であることを伝えます。私がclient_idという嘘をついたのは、私が 'Collector' Web Appをfacebookデベロッパーのウェブサイトに登録したときのIDです。だから私はバックエンドの 'コレクター'コードに変更を加える必要はないのですか? もし私が間違っていたら、私に教えてください:) – Oleg

関連する問題