はじめに
皆さん。こんにちは!
DreamHanksのエルムです。
今回はAmplifyによる認証について説明していきます。
前回の記事は[第二回] AWS Amplifyのセットアップです。
Amplifyによる認証
Amplify Frameworkでは、メインの認証プロバイダとしてAmazon Cognitoを使用しています。
Amazon Cognitoは、ユーザー登録、認証、アカウントリカバリーなどの操作を行う堅牢なユーザーディレクトリサービスです。
このチュートリアルでは、Amazon Cognitoとユーザー名/パスワードによるログインを使用して、アプリケーションに認証を追加する方法を学びます。
認証サービスの作成方法
最初から始めるには、プロジェクトのルートフォルダーで次のコマンドを実行します。
1 |
amplify add auth |
サービスをデプロイするには、”push “コマンドを実行します。
1 |
amplify push |
これで、認証サービスがデプロイされましたので、早速使ってみましょう。
プロジェクトにデプロイされたサービスをいつでも確認するには、以下のコマンドを実行してAmplify Consoleにアクセスします。
1 |
amplify console |
アプリケーションの設定方法
アプリにAmplifyを追加します
以下のコマンドを実行して、必要な依存パッケージをインストールします。
1 |
npm install aws-amplify |
アプリのエントリーポイント(App.js、index.js、main.jsなど)で、設定ファイルをインポートして読み込みます。
1 2 3 |
import Amplify, { Auth } from 'aws-amplify'; import awsconfig from './aws-exports'; Amplify.configure(awsconfig); |
サインアップ、サインイン、サインアウトの有効化
アプリケーションに認証機能を追加するには、2つの方法があります。
- Use pre-built UI components
- Call Authentication APIs manually
Use pre-built UI components
ログインフローの作成は、正しく行うことが非常に難しく、時間がかかります。
Amplify Frameworkには、認証UIコンポーネントが用意されており、aws-exports.jsファイルで指定した設定を使用して、認証フロー全体を提供してくれます。
Amplifyには、React、Vue、Angular、React Native用のUIコンポーネントがあらかじめ用意されています。
まず、@aws-amplify/ui-react ライブラリと、aws-amplifyをインストールしてください。
1 |
npm install aws-amplify @aws-amplify/ui-react |
次に、src/App.jsを開き、withAuthenticatorコンポーネントを追加します。
withAuthenticator
withAuthenticatorは、AmplifyAuthenticatorをラップする高次コンポーネント(HoC)である。
また、AmplifySignOutコンポーネントにも注目してください。これはオプションのコンポーネントで、サインアウトボタンを表示させたい場合に使用します。
使用方法
1 2 3 4 5 6 7 8 9 10 11 |
import React from 'react'; import { withAuthenticator, AmplifySignOut } from '@aws-amplify/ui-react'; const App = () => ( <div> <AmplifySignOut /> My App </div> ); export default withAuthenticator(App); |
Call Authentication APIs manually
次のチュートリアルでは、Auth APIを使って、認証フローをアプリケーションに統合する方法を学びます。
概要
Amplifyを使用して認証フローを実装するには、Amplify UIライブラリを使用するか、Authクラスで直接認証メソッドを呼び出すことができます。
Authには、signUp、signIn、forgotPassword、signOutなど30以上のメソッドがあり、ユーザー認証フローのすべての側面を完全にコントロールすることができます。
終わりに
今回の記事は以上になります。
次回はバックエンドの作成または既存のバックエンドの再利用を学びましょう。
ご覧いただきありがとうございます。
コメント