私は_aws-amplify
_ライブラリをionicで使用していて、ユーザーがログインしているかどうかを確認する方法を考えていましたか?Firebaseのバックグラウンドから来ているので、これはかなり異なりますこれは、ユーザーのログインステータスに基づいて特定のページへのアクセスを許可できるようにするためです。auth
プロバイダーでは、_Amplify {Auth}
_をインポートします。複数のデータを取得できることがわかりますが、何を使うかわかりません。currentUserPoolUser
、getCurrentUser()
、getSyncedUser()
、currentAuthenticatedUser
、currentSession
、getCurrentUser()
、userSession
、currentUserCredentials
、currentCredentials
およびcurrentUserInfo
。このいずれについてもドキュメントが見つからないようです。すべてユーザーがサインインするまでカバーを読んで見ました...これはすべてクライアントで行われるはずですか?ありがとう。
すべてのページでionViewCanEnter()関数を使用して、アクセスを許可/拒否しています。この関数の戻り値は、ページをロードできるかどうかを決定します(また、コストラクタを実行する前に実行されます)。この関数内では、ロジックを実装する必要があります。
私の場合、Amplifyを使用して、これを行っています。
async ionViewCanEnter(){
return await Auth.currentAuthenticatedUser()
.then(() => { return true; })
.catch(() => { return false; });
}
Amplify currentAuthenticatedUser()はpromiseを返すので、async awaitを使用して、ユーザーがログインしているかどうかを知るための応答を待ちます。
今のところ、ログインしたかどうかを検出するために使用できるのはAuth.currentUserInfo();
だけだと思います。ログインしていない場合はundefined
を返し、ログインしている場合はobject
を返します。