2017-12-19 5 views
2

私はAngularとNodeJSを使ってアプリケーションを構築しています。カスタムNodeJSサーバーでAWS Cognitoをどのように使用しますか?

私はAWS Cognitoについて聞いたことがあり、アプリで使用したいと考えています。しかし、それがどのように動作するはずであるかは、文書では非常に不明です。

There is an example Angular SPAでのCognitoの使用方法については、backened NodeJSサーバーでユーザーを認証する方法については言及していません。

NodeJSは、ユーザがログインしているかどうかをどのように知っていると思われますか?私はいくつかの可能な答えを考えることができますが、文書には何も表示されず、驚くほどコードサンプルがありません。だから私は試行錯誤で多くの時間を投資する前に、ここで尋ねることに決めました。

答えて

2

バックエンドNodeJSサーバーでAWS Cognito Userpoolsを使用してユーザーを認証できます。手順は次のとおりです。

  • Cognito Userpoolを作成し、App Clientをセットアップします。
  • Cognito Userpoolを作成します(オプションで、ユーザーにAWSサービスへの制御されたアクセスを直接許可する場合は、CognitoフェデレーションID)。
  • Cognito Hosted UI(SigninページとオプションのSignupページで構築)を設定します。
  • ユーザーサインインの場合、このユーザーをこのサインインドメインURLにリダイレクトします。
  • リダイレクトURLを使用してApp ClientをOauth2のアプリケーション用に設定します。
  • ユーザーSigninの後に、NodeJSミドルウェアを使用して検証できるNodeJSサーバーに転送できるid_token(たとえば暗黙的な許可フロー)がURLに送信されます。
  • id_tokenをCookieまたはブラウザストレージに格納するかどうかを決定し、その後の要求に応じてストレージと検証を実装することができます。

注:id_tokenは標準のJavaScript Webトークン(JWT)なので、検証するライブラリを見つけることができます。詳細はAWS documentation Using Tokens with User Poolsを参照してください。

+0

ありがとうございます!しかし、あなたのユーザがAWSサービスへの制御されたアクセスを直接許可するようにするにはどういう意味ですか? – CodyBugstein

+0

たとえば、ユーザーがファイルをs3に直接アップロードできるようにしたいとします。ユーザーは一時的なアクセス資格情報を必要とし、ユーザーはブラウザから直接アップロードできます。 – Ashan

+0

これはユーザープールでは実行できません。 – CodyBugstein

関連する問題