web-dev-qa-db-ja.com

AWS Amplify、ユーザーがログインしているかどうかを確認するにはどうすればよいですか?

私は_aws-amplify_ライブラリをionicで使用していて、ユーザーがログインしているかどうかを確認する方法を考えていましたか?Firebaseのバックグラウンドから来ているので、これはかなり異なりますこれは、ユーザーのログインステータスに基づいて特定のページへのアクセスを許可できるようにするためです。authプロバイダーでは、_Amplify {Auth}_をインポートします。複数のデータを取得できることがわかりますが、何を使うかわかりません。currentUserPoolUsergetCurrentUser()getSyncedUser()currentAuthenticatedUsercurrentSessiongetCurrentUser()userSessioncurrentUserCredentialscurrentCredentialsおよびcurrentUserInfo。このいずれについてもドキュメントが見つからないようです。すべてユーザーがサインインするまでカバーを読んで見ました...これはすべてクライアントで行われるはずですか?ありがとう。

8
NeXtMaN_786

すべてのページでionViewCanEnter()関数を使用して、アクセスを許可/拒否しています。この関数の戻り値は、ページをロードできるかどうかを決定します(また、コストラクタを実行する前に実行されます)。この関数内では、ロジックを実装する必要があります。

私の場合、Amplifyを使用して、これを行っています。

 async ionViewCanEnter(){
    return await Auth.currentAuthenticatedUser()
      .then(() => { return true; })
      .catch(() => { return false; });
  }

Amplify currentAuthenticatedUser()はpromiseを返すので、async awaitを使用して、ユーザーがログインしているかどうかを知るための応答を待ちます。

4
AleCat83

今のところ、ログインしたかどうかを検出するために使用できるのはAuth.currentUserInfo();だけだと思います。ログインしていない場合はundefinedを返し、ログインしている場合はobjectを返します。

4
powerful23