如何在 AWS Amplify for Flutter 中检查用户是不是已确认(电子邮件/电话验证)

Posted

技术标签:

【中文标题】如何在 AWS Amplify for Flutter 中检查用户是不是已确认(电子邮件/电话验证)【英文标题】:How to check if user is confirmed(email/phone verified) in AWS Amplify for Flutter如何在 AWS Amplify for Flutter 中检查用户是否已确认(电子邮件/电话验证) 【发布时间】:2021-12-25 16:05:46 【问题描述】:

假设在我的应用程序中;我只想为经过验证的用户提供部分功能。我对如何检查当前用户是否经过验证感到困惑。我检查了 Amplify 文档的抖动,但找不到合适的方法。

【问题讨论】:

【参考方案1】:

请参阅此主题: https://github.com/aws-amplify/amplify-flutter/issues/581

上面写着:

iOS isSignupComplete 由 AuthSignUpResult.nextStep 确定。 当 nextStep != done 时,前者总是错误的。

安卓 注册请求成功完成后,isSignupComplete 将被标记为 true。

虽然 isSignupComplete 可能在两个平台之间不一致,但检查 SignUpResult.nextStep 应该足以确定用户是否已完成注册确认。

E.g.

SignUpResult createAccountResult = await Amplify.Auth.signUp(
  username: email.text,
  password: password.text,
  options: CognitoSignUpOptions(userAttributes: 'email': email.text));

if (res.nextStep.signUpStep == 'CONFIRM_SIGN_UP_STEP') 
  // continue to confirm sign up step


if (res.nextStep.signUpStep == 'DONE') 
  // complete sign up

这适用于原生平台,但通过检查 Flutter 中的 signUpStep 应该是相同的

【讨论】:

首先感谢您的回复。我认为这不是一个好的解决方案;既然注册后就可以完成确认,那么我应该如何检查呢,再次发送注册请求只是为了检查确认没有意义 您说得对,先生,谢谢您的评论。如果软件包没有为此提供任何吸气剂,我建议提出一个问题 如果用相同的邮件重试,它只会发送一个错误,说邮件已经存在。

以上是关于如何在 AWS Amplify for Flutter 中检查用户是不是已确认(电子邮件/电话验证)的主要内容,如果未能解决你的问题,请参考以下文章

我可以在使用 AWS amplify for Cognito 和 DataStore 的同时使用 fire base 来托管我的 Flutter Web 应用程序吗

AWS amplify add auth:如何在执行 amplify cli 后添加重定向登录 URI

AWS Amplify -- 无法迭代回滚,因为以下步骤不包含 previousMetaKey:"status":"WAITING_FOR_DEPLOYMENT"

如何将 Quasar 2 与 AWS Amplify 结合使用?

如何在 aws amplify 中使用 graphQL 限制

如何在 AWS amplify-js 中处理刷新令牌服务