はじめに
AWS Cognitoは、安全なユーザー認証と管理を提供するAWSのサービスです。本記事では、AWS Cognitoを活用してログイン画面を構築する方法を解説します。
1. AWS Cognitoとは?
AWS Cognitoは、アプリケーションにユーザー認証機能を簡単に追加できるサービスで、以下の特徴があります。
- ユーザープール: ユーザーの認証情報を管理
- IDプール: AWSリソースへのアクセス権を管理
- 多要素認証(MFA)対応
- ソーシャルログイン(Google, Facebook, Appleなど)対応
2. AWS Cognitoのセットアップ
2.1 ユーザープールの作成
- AWSマネジメントコンソールにログインし、「Cognito」を検索
- 「ユーザープールの作成」を選択
- 認証方法(メールアドレス/電話番号)を設定
- パスワードポリシーを設定
- 「作成」ボタンを押してユーザープールを作成
2.2 アプリクライアントの設定
- 作成したユーザープールに移動
- 「アプリクライアント」を作成し、シークレットキーを無効にする(フロントエンド向け)
- コールバックURLを設定(例:
http://localhost:3000/callback)
2.3 ドメインの設定
- 「ドメイン名」タブでカスタムドメインを設定
- CognitoのホストされたUIを利用可能にする
3. フロントエンドの実装
3.1 必要なライブラリのインストール
npm install amazon-cognito-identity-js @aws-amplify/auth
3.2 認証の設定
import Amplify from 'aws-amplify';
Amplify.configure({
Auth: {
userPoolId: 'us-east-1_example',
userPoolWebClientId: 'exampleclientid',
region: 'us-east-1'
}
});
3.3 ログイン機能の実装
import { Auth } from 'aws-amplify';
async function signIn(username, password) {
try {
const user = await Auth.signIn(username, password);
console.log('ログイン成功:', user);
} catch (error) {
console.error('ログインエラー:', error);
}
}
3.4 ログアウト機能の実装
async function signOut() {
try {
await Auth.signOut();
console.log('ログアウト成功');
} catch (error) {
console.error('ログアウトエラー:', error);
}
}
4. まとめ
AWS Cognitoを利用すると、簡単にログイン機能を実装できます。今回は基本的なログイン・ログアウト機能を紹介しましたが、ソーシャルログインやMFA認証など、さらに高度な機能も組み込むことが可能です。


コメント