当前位置: 首页 > 知识库问答 >
问题:

如何在不使用本地SDK的情况下使用AWS Cognito登录

轩辕弘雅
2023-03-14

我想使用Cognito对我的用户进行身份验证,这是一个内置于Flutter和Dart的应用程序。

不幸的是,Dart不存在本机AWS SDK,我不能在颤振中使用JS互操作。

我已经研究了OAuth2流,但这需要将我的用户重定向到登录表单,这对移动应用程序来说不是很好。

有哪些替代方案?

共有2个答案

邵奇
2023-03-14

您可以实现后端服务来验证Cognito凭据。

在这种方法中,可以在移动应用中实现登录屏幕,将用户凭据发送到后端。在后端,您可以使用Cognito SDK验证凭据,并发出令牌,该令牌将被发送用于移动应用的后续API请求。

您可以使用AWSAPI网关和Lambda来实现这一点。

例如,请参考此实现NodeJS后端。

阎元徽
2023-03-14

您可以尝试amazon_cognito_identity_dart包,它完全是用dart编写的。

import 'package:amazon_cognito_identity_dart/cognito.dart';

final userPool = new CognitoUserPool(
    'ap-southeast-1_xxxxxxxxx', 'xxxxxxxxxxxxxxxxxxxxxxxxxx');
final cognitoUser = new CognitoUser(
    'email@email.my', userPool);
final authDetails = new AuthenticationDetails(
    username: 'email@email.my', password: 'Password001');

CognitoUserSession session;
try {
  session = await cognitoUser.authenticateUser(authDetails);
} on CognitoUserException catch (e) {
  // handle CognitoUser exceptions
} catch (e) {
  print(e);
}

print(session.isValid());

查看示例Secure Counter应用程序,了解如何将其与颤振一起使用。

免责声明:我是该软件包的原始作者。

 类似资料:
  • 我想从本地的加载我的自定义插件。文件编译良好,当我检查它时,清单和插件类就在那里。 这个插件还没有做任何有用的事情,因为它应该是一个概念验证,以确保它能够正常工作: 在以下任何源中都找不到插件[ID:“asdf”,版本:“1.4.0”]: 我错过了什么?我使用Gradlev6.5。

  • 问题内容: 我已经使用flask-oauthlib实现了一个oauth2服务器和一个oauth2客户端。 当我尝试在本地测试时,客户端返回InsecureTransportError并告诉我应该使用https。 有没有办法在没有https的情况下在本地测试应用程序? 客户端运行在127.0.0.2:5000,服务器运行在127.0.0.1:5000。 问题答案: 你应注意,Oauth2通过SSL层

  • 问题内容: 以下App Engine处理程序在可以获取令牌的范围内起作用: 当连接到模板时,它会从Facebook获得令牌响应并愉快地显示它。但是,最好不要将用户重定向到example.com/?state=SOME_UNIQUE_VALUE&code=AQB0iYpAf8nMmX5blahblah# = 来完成登录。 有没有一种方法可以使用client.Get等来访问授权URL,遵循重​​定向,

  • 问题内容: 如果我要使用DefaultServeMux(我将其指定为ListenAndServe的第二个参数来指定),那么我可以访问,您可以在Go Wiki的以下示例中看到该: 在当前代码中,我无法使用DefaultServeMux,即我将自定义处理程序传递给ListenAndServe 因此,我没有内置的代码。但是,我必须将一些授权代码修改为需要类似的授权代码。例如,如果我一直在使用Defaul

  • 我有一个具有两个属性的dynamoDB表: A: 主分区键 B: 主排序键 我想使用属性B查询这个表,因为我不知道A的值。可以这样做吗? 是否可以将B设为GSI(全局二级索引),如何使用B查询表,因为B已经是排序键。

  • 问题内容: 我有和。 我的Linux Mint 12上有很多错误,我只是重新安装了它,所以我想再次从头开始安装所有内容。 这是我的错误之一。我在那里收到一个有趣的答案: 停止使用su和sudo运行virtualenv。 你需要以普通用户身份运行virtualenv。 你已经使用sudo创建了virtualenv,这就是为什么你会收到这些错误的原因。 那么如何不使用安装呢?我可以使用还是不使用?还是