Cognitoをソーシャルサインインと統合する方法

( Ryan Bui)(2020年12月16日)

Javascript開発者RyanBuiによる

アプリにCognitoを使用してソーシャルサインインを手動で統合する場合は、適切な場所に来ました!ソーシャルサインインをCognitoが提供するものと統合できませんでした。これは、Flutterを使用しているため、フロントエンドがAmplifyまたはCognitoユーザープールと簡単に統合できなかったためです。 Flutterは現在、これらのサービスと統合するには若すぎます。

また、フロントエンドに一時的なAWS認証情報を付与するためのIDプールを作成したくありませんでした。この問題を解決するために、プログラムでCognitoにサインアップ/ログインする/ authエンドポイントを有効にしました。ユーザーは順番に認証トークンを取得します。

ユーザーは、Google、Facebook、またはAppleから独自のソーシャルトークンを送信する必要があります。これらのトークンの検証は、バックエンドから実行されます。

サインアップ

必要なのは、「CognitoIdentityServiceProvider」ライブラリを使用することです必要な資格情報と、ユーザーに割り当てる属性(メール、名前など)を提供します。これらの属性は、プールの作成時に必要です(以下の例)。

その代わりに、作成したばかりのユーザーIDが必要です。

ログイン

ログイン時に、ユーザー名とパスワードを入力する必要があります。必要に応じて、メールのみを使用してログインできます。成功すると、後でAPIへのユーザー呼び出しを承認するときに使用されるidTokenが必要になります。

着信リクエストの承認

承認者を構成するには2つの方法があります。手動で行う場合は、AWSコンソールを開いてAPI Gatewayサービスに移動し、APIで承認者を作成する必要があります。

次のステップでは、承認者に名前を付けて、必要なCognitoユーザープールを選択します。承認者を使用するメソッドを選択し、[メソッドリクエスト]をクリックして、このメソッドを承認者にリンクします。

まず、承認で、承認者を選択します。 OAuthスコープの場合、「NONE」を選択してIDトークンを期待します。スコープでアクセストークンを使用する場合は、 AWSのドキュメントに従うことができます。

これで、手動で行う必要があるのはこれだけです。構成!サーバーレスで自動化したい場合は、次の方法で自動化できます。

ここではユーザープールのARNを提供する必要があります。トークンをキャッシュしたくないので、 resultTtlInSeconds:0 を使用します。 IDソースとして、認証ヘッダーへのパスを入力します。

これで、このAPIの利用者は、認証ヘッダーでCognitoIDトークンを渡すだけで済みます。

簡単な要約…

CognitoはFlutterとうまく統合されていません。 AWSSDKを使用してサインアップとログインを行いました。そうすることで、クライアントに返すトークンを生成できます。これらのトークンは、APIゲートウェイの承認者に対して検証するために使用されます。

この記事を共同執筆していただきありがとうございます。ルート53の
(AWSの設定方法)&(S3静的ウェブサイトをプロキシする方法)

Ryanは、TDDおよびBDDと緊密に連携したJavascript開発者です。彼はビデオゲームやギターを楽しんでいます。

TribalScale は、企業を支援するグローバルなイノベーション企業です。デジタル時代に適応し、繁栄します。チームとプロセスを変革し、クラス最高のデジタル製品を構築し、破壊的なスタートアップを生み出します。 ウェブサイト で詳細をご覧ください。 Twitter LinkedIn & Facebook

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です