javascript React无法识别Amplify应用程序中的用户属性

ilmyapht  于 2023-02-02  发布在  Java
关注(0)|答案(1)|浏览(77)

我使用Cognito用户池构建了一个Amplify应用程序,用于身份验证/授权。我现在尝试使用Auth.currentAuthenticatedUser()检索用户属性。他们拥有的示例代码(运行良好)如下:

import { Auth } from 'aws-amplify';

Auth.currentAuthenticatedUser({
  bypassCache: false
})
  .then((user) => console.log(user))
  .catch((err) => console.log(err));

在这里,console.log(user)记录了所有当前用户数据,正如预期的那样,我现在想在一个变量中捕获这些数据(或者至少是它的单个属性),以便稍后使用,但是,如果我试图使用user定义一个变量,它会给我一个未定义的错误。
下面是我所尝试的操作和生成的错误的示例:

    • 代码:**
Auth.currentAuthenticatedUser({
  bypassCache: false
})
  .then((user) => console.log(user))
  .catch((err) => console.log(err));
  let userData = user;
    • 错误:**

'user' is not defined no-undef
我也试过constvar,但是无论如何,它都不能识别user。我不明白这怎么可能,因为它已经成功地记录了上面的两行。任何想法都将不胜感激!

anauzrmj

anauzrmj1#

我可以通过将const放在try/catch块中来存储它的值:

try {
  const user = await Auth.currentAuthenticatedUser(); 
  const userGroup = user;
  console.log(user);
} catch (err) {}

在我的例子中,我只需要用户组,所以我实际上将它缩小到该参数:

const userGroup = user.signInUserSession.accessToken.payload["cognito:groups"]

相关问题