Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Cognito错误I/Flatter(4963):参数无效:需要密码参数_Amazon Web Services_Authentication_Flutter_Amazon Cognito - Fatal编程技术网

Amazon web services Cognito错误I/Flatter(4963):参数无效:需要密码参数

Amazon web services Cognito错误I/Flatter(4963):参数无效:需要密码参数,amazon-web-services,authentication,flutter,amazon-cognito,Amazon Web Services,Authentication,Flutter,Amazon Cognito,我正在尝试遵循flatter pub.dev文档进行Cognito和AWS用户身份验证。我正在构建一个Flatter移动应用程序,并且能够成功地将用户注册到我的AWS用户池中。我试图编码的登录功能,但它不会注册任何参数,我试图给它。i、 e密码和用户名(电子邮件) 我试着重新启动电脑,安卓工作室,尝试遵循所有AWS文档,并在上面重新编写代码 AttributeArg ar1=AttributeArg(名称:“用户名”,值:userEmail); AttributeArg ar2=Attribut

我正在尝试遵循flatter pub.dev文档进行Cognito和AWS用户身份验证。我正在构建一个Flatter移动应用程序,并且能够成功地将用户注册到我的AWS用户池中。我试图编码的登录功能,但它不会注册任何参数,我试图给它。i、 e密码和用户名(电子邮件)

我试着重新启动电脑,安卓工作室,尝试遵循所有AWS文档,并在上面重新编写代码

AttributeArg ar1=AttributeArg(名称:“用户名”,值:userEmail); AttributeArg ar2=AttributeArg(名称:“密码”,值:userPassword)

最终列表authParams=[
ar1,
ar2,
];
AuthenticationDetails authDetails2=AuthenticationDetails();
authDetails2.authParameters=authParams;
//最终authDetails=新的AuthenticationDetails(
//authParameters:authDetails2.getAuthParameters());
最终授权详情=
新的AuthenticationDetails(authParameters:authDetails2.authParameters);
setCognitoUser();
认知用户会话;
setAuthenticationFlowType('USER_PASSWORD_AUTH');
试一试{
//会话=等待cognitoUser.initiateAuth(authDetails);
会话=等待cognitoUser.authenticateUser(authDetails);
//用户名:userEmail,密码:userPassword));
}捕获(e){
印刷品(e);
}
打印(session.getAccessToken().getJwtToken());
I/Flatter(4963):参数无效:需要密码参数 E/flatter(4963):[ERROR:flatter/lib/ui/ui\u dart\u state.cc(148)]未处理的异常:NoSuchMethodError:对null调用了方法“getAccessToken”。 E/颤振(4963):接收器:空 E/flatter(4963):尝试调用:getAccessToken() E/颤振(4963):#0 Object.noSuchMethod(省道:核心补片/Object_补片。省道:50:5) E/flatter(4963):#1 Globals.logiuser(软件包:neurominer_应用程序/Globals.dart:76:19) E/颤振(4963): E/flatter(4963):#2#u LoginScreenState.build。(软件包:neurominer_应用程序/屏幕/登录屏幕。dart:155:34) E/颤振(4963):#3(InkResponse Estate.)(handleTap)(包装:颤振/src/材料/墨水)井。省道:635:14) E/颤振(4963):#4#InkResponse.build。(包装:颤振/src/材料/墨水井。省道:711:32) E/flatter(4963):#5手势识别器.invokeCallback(包:flatter/src/signatures/recognizer.dart:182:24) E/flatter(4963):#6 TapGestureRecognitor.#检查(软件包:flatter/src/signatures/tap.dart:365:11) E/flatter(4963):#7 TapGestureRecognitor.handlePrimaryPointer(包:flatter/src/signatures/tap.dart:275:7) E/颤振(4963):#8 PrimaryPointerTestureRecognizer.handleEvent(包:颤振/src/手势/识别器。dart:455:9) E/flatter(4963):#9点外部程序。#调度(包:flatter/src/signatures/pointer_router。dart:75:13) E/flatter(4963):#10 PointerRouter.route(包:flatter/src/signatures/pointer_router.dart:102:11) 电子/颤振(4963):#11#WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent(软件包:颤振/src/手势/binding.dart:218:19) 电子/颤振(4963):#12#WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent(包:颤振/src/手势/binding.dart:198:22) 电子/颤振(4963):#13#WidgetsFlutterBinding&BindingBase&GestureBinding.#手持指针事件(包装:颤振/src/手势/绑定。省道:156:7) 电子/颤振(4963):#14#WidgetsFlutterBinding&BindingBase&GestureBinding.#flushPointerEventQueue(包装:颤振/src/手势/binding.省道:102:7) E/flatter(4963):#15#WidgetsFlutterBinding&BindingBase&GestureBinding.#handlePointerDataPacket(包:flatter/src/signatures/binding.dart:86:7) E/flatter(4963):#16 rootrunary(dart:async/zone.dart:1136:13) E/flatter(4963):#17 _CustomZone.runUnary(dart:async/zone.dart:1029:19) E/flatter(4963):#18 _CustomZone.runUnaryGuarded(dart:async/zone.dart:931:7) E/颤振(4963):#19 _调用1(省道:ui/挂钩。省道:250:10) E/flatter(4963):#20 dispatchPointerDataPacket(dart:ui/hooks.dart:159:5) E/颤振(4963):

来自的正确代码

只需要确保,由于我在多个屏幕(导入类和调用方法进行用户身份验证)之间拆分代码,所以使用有效的用户名和密码(非空)值进行身份验证

final userPool = new CognitoUserPool(
    'ap-southeast-1_xxxxxxxxx', 'xxxxxxxxxxxxxxxxxxxxxxxxxx');
final cognitoUser = new CognitoUser(
    'email@inspire.my', userPool);
final authDetails = new AuthenticationDetails(
    username: 'email@inspire.my', password: 'Password001');
CognitoUserSession session;
try {
  session = await cognitoUser.authenticateUser(authDetails);
} catch(e){
  print(e);
}
从中更正代码

只需要确保,由于我在多个屏幕(导入类和调用方法进行用户身份验证)之间拆分代码,所以使用有效的用户名和密码(非空)值进行身份验证

final userPool = new CognitoUserPool(
    'ap-southeast-1_xxxxxxxxx', 'xxxxxxxxxxxxxxxxxxxxxxxxxx');
final cognitoUser = new CognitoUser(
    'email@inspire.my', userPool);
final authDetails = new AuthenticationDetails(
    username: 'email@inspire.my', password: 'Password001');
CognitoUserSession session;
try {
  session = await cognitoUser.authenticateUser(authDetails);
} catch(e){
  print(e);
}

查看文档,您的
authDetails
变量需要如下:final authDetails=new AuthenticationDetails(用户名:'email@inspire.my,密码:“Password001”);所以我假设顶部数组中的“ar2”可能为null或无效。我更改了一些代码,然后重新运行了所有内容。我相信问题是,在一个单独的屏幕(我的登录屏幕)上,我没有发送非空值。因此,用户名/密码为空。查看文档,您的
authDetails
变量需要如下:final authDetails=new AuthenticationDetails(用户名:'email@inspire.my,密码:“Password001”);所以我假设顶部数组中的“ar2”可能为null或无效。我更改了一些代码,然后重新运行了所有内容。我相信问题是,在一个单独的屏幕(我的登录屏幕)上,我没有发送非空值。因此,用户名/密码为空。