機能を提供するためにREST APIを使用するAngularで書かれたWebサイトがあります。REST APIを使用しているWebサイトへの認証の正しいワークフローは何ですか
私はウェブサイトへの認証のための適切なワークフローを知りたいと思います。
1999年に戻ってみましょう - 私はウェブサイトを作成し、すべてのロジックはウェブコードにあります。 REST APIはありません。誰かがウェブサイトにログインしたければ、彼らは自分のメールアドレスとパスワードを入力し、自分のマシンにクッキーを保存して、私のウェブサイトに「ログイン」セッションを持っています。このクッキーを持つことによって、彼らはコメントを書くなどの特定のことをする権限が与えられます。
すべていいです。
新しいウェブサイトに早送りします。このウェブサイトはAngularで書かれており、すべてのコンテンツはREST APIを介して提供されています。いくつかのREST呼び出しは、一連のコメントのようにデータを表示するだけです。任意の匿名ユーザーは、ページを参照するだけでこれらの通話を行うことができます。ただし、ユーザーは電子メールとパスワードを使用してWebサイトにログインできます。再度、ユーザーのマシンにCookieを保存し、Webサイトにログインします。今、彼らはウェブサイトにログインしているので、彼らはコメントを投稿することができます。これらの投稿は、REST API呼び出しを介して行われます。しかし、GoogleとInterwebは、私のREST APIがステートレスでなければならないと私に言ってきました。私はこの要求に対してoauth2を使用するべきです。
私の質問は、この非常に共通の認証パターンのワークフローは何ですか。
私は思ったかもしれない何かのように:
- ユーザーは、ユーザー名とパスワードでログインする
- 要求は私のWeb認証サーバに送信される1つの第二のリクエストが送られ
- 作成されたセッションクッキーさらなるリクエストのために有効なトークンを発行する私のAPI認証サーバー
2つのシステムはかなり離れており、お互いに依存しません。
ソーシャル・ログインをミックスに追加する場合は、上記の(2)は必須のソーシャル認証サーバーに対する認証であり、(3)は変更されません。