ユーザーセッションの管理
Amplify Authは、現在のユーザーセッションとトークンへのアクセスを提供し、ユーザー情報を取得して、有効なセッションでサインインしているかどうかを判断し、アプリケーションへのアクセスを制御するのに役立ちます。
現在認証されているユーザーを取得する
getCurrentUser APIを使用して、現在認証されているユーザーに関する情報を取得できます。これには username、userId、signInDetails が含まれます。
import { getCurrentUser } from 'aws-amplify/auth';
const { username, userId, signInDetails } = await getCurrentUser();
console.log("username", username);console.log("user id", userId);console.log("sign-in details", signInDetails);このメソッドは、ユーザーがサインインしているかどうかを確認するために使用できます。ユーザーが認証されていない場合はエラーをスローします。
ユーザーセッションを取得する
ユーザーのセッションはサインイン状態であり、アプリケーションへのアクセス権を付与します。ユーザーがサインインすると、認証情報が一時的なアクセストークンと交換されます。セッション詳細を取得して、これらのトークンにアクセスし、この情報を使用してユーザーアクセスを検証したり、そのユーザーに固有のアクションを実行したりできます。
セッション詳細のみが必要な場合は、JSON Web Token (JWT) を含む tokens オブジェクトを返す fetchAuthSession APIを使用できます。
import { fetchAuthSession } from 'aws-amplify/auth';
const session = await fetchAuthSession();
console.log("id token", session.tokens.idToken)console.log("access token", session.tokens.accessToken)セッションの更新
fetchAuthSession APIは、認証トークンの有効期限が切れ、有効な refreshToken が存在する場合、ユーザーのセッションを自動的に更新します。さらに、forceRefresh フラグを有効にして fetchAuthSession APIを呼び出すことで、セッションを明示的に更新することもできます。
import { fetchAuthSession } from 'aws-amplify/auth';
await fetchAuthSession({ forceRefresh: true });