放大颤振身份验证

时间:2021-04-28 07:29:56

标签: flutter amplify

我正在尝试在我的颤振项目中实现 Amplify。我想在没有登录和帐户验证的情况下注册新用户后立即获得 userSub。我使用电子邮件作为用户名。 其他一些人建议使用 Amplify.Auth.fetchAuthSession() 但我想我不能在没有登录的情况下使用这种方法。 有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

获取用户数据后必须进行身份验证。检查 Documentation from Amplify

注册

try {
  Map<String, String> userAttributes = {
    'email': 'email@domain.com',
    'phone_number': '+15559101234',
    // additional attributes as needed
  };
  SignUpResult res = await Amplify.Auth.signUp(
    username: 'myusername',
    password: 'mysupersecurepassword',
    options: CognitoSignUpOptions(
      userAttributes: userAttributes
    )
  );
  setState(() {
    isSignUpComplete = res.isSignUpComplete;
  });
} on AuthException catch (e) {
  print(e.message);
}

确认注册

try {
  SignUpResult res = await Amplify.Auth.confirmSignUp(
    username: 'myusername',
    confirmationCode: '123456'
  );
  setState(() {
    isSignUpComplete = res.isSignUpComplete;
  });
} on AuthException catch (e) {
  print(e.message);
}

登录

try {
  SignInResult res = await Amplify.Auth.signIn(
    username: usernameController.text.trim(),
    password: passwordController.text.trim(),
  );
  setState(() {
    isSignedIn = res.isSignedIn;
  });
} on AuthException catch (e) {
  print(e.message);
}

按照此video tutoril,您可以使用 BLOC 架构实现 Amplify Auth