MEAN スタック (MongoDB、Express、AngularJS、および node.js) で Web アプリを開発しています。私はログイン システムを開発しており、Angular ルートの一部を保護して、ログイン ユーザーのみがアクセスできるようにします。このアーキテクチャにアプローチする最善の方法を考えようとしています。
私は現在のワークフローを考えています:
- ユーザーは AngularJS フォーム経由でログインし、http POST を Express エンドポイントに送信します。エンドポイントはデータベースに対してユーザーを検証し、OAuth トークンと Cookie で応答します。どちらも、後で検証するために mongo データベースに保存されます。
- AngularJS がログイン レスポンスを受信すると、受信した Cookie を ng-cookies を使用して保存し、OAuth トークンをユーザー サービスに保存します。
- 現在、AngularJS でルートが変更されるたびに、ユーザー サービスを使用して、mongo データベース内の Cookie と比較することにより、Cookie がまだ正当であることを確認します (これは、Angular のリゾルブを使用した API 呼び出しになります...遅れ?)
- ユーザーが「ログアウト」をクリックするか、Cookie の有効期限が切れると、Cookie と OAuth トークンの両方がデータベースから削除され、無効になります。
このアプローチは理にかなっていますか?安全で、比較的効率的/迅速に実行できますか?