[第8回] パスワード & ユーザー管理

AWS Amplify

はじめに

皆さん。こんにちは!

DreamHanksのエルムです。

今回はパスワード & ユーザー管理について説明していきます。

前回の記事はMulti-factor 認証 (Multi-factor authentication)です。

 

パスワード操作について (Password operations)

パスワードの変更

 

パスワードを忘れた場合 (Forgot password)

 

新しいパスワードの入力 (Complete new password)

 

有効なユーザーディレクトリがAmazon Cognitoで作成されている場合、ユーザーは最初のサインイン試行時に新しいパスワードと必要な属性の提供を求められます。このシナリオでは、次のメソッドを呼び出して、ユーザーが入力した新しいパスワードを処理することができます。

 

 

 

アカウント回復の検証 (Account recovery verification)

 

アカウントの復旧には、電話番号かメールアドレスのどちらかが必要です。

ユーザーにそれらの属性を確認させることができます:

 

現在認証されているユーザーを取得する方法

Auth.currentAuthenticatedUser()を呼べば、現在の認証済みユーザーオブジェクトを取得できます。

 

このメソッドは、ページが読み込まれたときに、ユーザーがログインしているかどうかを確認するために使用できます。ログインしているユーザーがいない場合は、エラーが発生します。

このメソッドは、Authモジュールが設定された後、またはユーザーがログインした後に呼び出される必要があります。 Authイベントの “configured ” や “signIn “を確実に聞き取ることができるようにする。

 

現在認証されているユーザーの属性を取得する方法

また、Auth.currentAuthenticatedUserが返すユーザーオブジェクトから、メールアドレスや電話番号、サブなど、ユーザーに関連する属性にアクセスすることもできます。

 

現在のセッションを取得する方法

Auth.currentSession()は、JWT accessToken, idToken, refreshTokenを含むCognitoUserSessionオブジェクトを返します。

このメソッドは、トークンの有効期限が切れ、有効なrefreshTokenが提示されると、accessTokenidTokenを自動的に更新します。

そのため、必要に応じてこのメソッドを使ってセッションを更新することができます:

 

ユーザー属性の管理 (Managing user attributes)

 

サインアップ時にユーザーの属性を渡すことができます:

 

ユーザーの属性を取得することができます:

 

ユーザーの属性を更新することができます:

 

メールアドレスを変更した場合、ユーザーは確認コードを受け取ります。アプリでは、確認コードを確認することができます。

 

セキュリティートークンの管理する方法 (Managing security tokens)

 

AWS AmplifyでAuthenticationを使用する場合、Amazon Cognitoのトークンを手動でリフレッシュする必要はありません。トークンは必要に応じてライブラリによって自動的に更新されます。

 

IdTokenAccessTokenなどのSecurity Tokensは、ブラウザではlocalStorageに、React NativeではAsyncStorageに格納されます。トークンをより安全な場所に保管したい場合や、Amplifyをサーバーサイドで使用している場合は、独自のストレージ・オブジェクトを提供してトークンを保管することができます。

 

例えば、以下のように:

 

以下のように: AsyncStorageをストレージオブジェクトとして使用する例として、AsyncStorageからMemoryにアイテムを同期させる方法を紹介します。

 

トークンの詳細については、Amazon Cognito Developer Documentationをご覧ください。

 

終わりに

 

今回の記事は以上になります。

次回は[第9回] Userプール認証フローを学びましょう。

ご覧いただきありがとうございます。

 

 

コメント