AWS Amplify,如何检查用户是否已登录?

NeX*_*786 8 amazon-web-services ionic-framework aws-sdk aws-amplify

我一直在使用aws-amplify离子库,并想知道如何检查用户是否登录?我来自firebase背景所以这是完全不同的.这样我就可以根据用户的登录状态授予对某些页面的访问权限.在我的auth提供者中我导入Amplify {Auth}.我可以看到可以获得几个数据,但我不知道该使用什么.有currentUserPoolUser,getCurrentUser(),getSyncedUser(),currentAuthenticatedUser,currentSession,getCurrentUser(),userSession,currentUserCredentials,currentCredentialscurrentUserInfo.我似乎无法找到任何这方面的任何文件.我阅读和观看的所有内容都会被覆盖,直到用户登录...这一切都应该在客户端完成吗?谢谢.

Ale*_*t83 14

我在每个页面中使用 ionViewCanEnter() 函数来允许/拒绝访问。这个函数的返回值决定了页面是否可以加载(并且在运行 costructor 之前执行)。在这个函数中,你必须实现你的逻辑。

就我而言,使用 Amplify,我这样做:

async function ionViewCanEnter() {
    try {
        await Auth.currentAuthenticatedUser();
        return true;
    } catch {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

由于 amplify currentAuthenticatedUser() 返回一个 promise,我使用 async await 等待响应以了解用户是否已登录。

  • 为什么要混合新旧语法?怎么样```async ionViewCanEnter(){ try { await Auth.currentAuthenticatedUser() return true } catch(e) { return false } }``` (10认同)

小智 8

嘿嘿,我觉得现在只能Auth.currentUserInfo();用来检测是否登录了。undefined如果您未登录或已登录,它将返回object

  • 或者这个`Auth.currentAuthenticatedUser()` (4认同)