问题标签 [aws-mobilehub]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
authentication - AWS Cognito 移动中心
我需要通过 Instagram 为我的移动应用程序登录用户,以便我可以调用 Instagram API 并从 Instagram 获取一些信息。简单地说,我的应用程序将要求用户授权 Instagram 访问并能够获取 API 调用的访问令牌。一旦用户被授权,应用程序不应要求用户再次登录。我已经设置了我的 Instagram 客户端应用程序来实现服务器端身份验证流程。
我的挑战是我想通过使用 AWS 移动服务来做到这一点。我已经从 MobileHub 设置了自定义身份验证,并且需要定义自定义身份验证流程(在本例中是Instagram 身份验证流动)。在 AWS Cognito 应用程序下,当我转到 Triggers 选项卡时,我看到了用于定义与我的身份验证相关联的 lambda 函数的不同选项(例如 pre/post auth 或 define/create/verify auth challenge)。我不确定如何使 Instagram 身份验证流程与这些功能保持一致。或者我应该使用别的东西。此外,我不清楚 AWS Cognito 如何管理身份验证流程:我不希望我的用户每次启动我的应用程序时都经过授权过程。我相信 AWS Cognito 将用户从我的自定义流程链接到某个 Cognito 身份,并且能够在他们使用我的应用程序时进行身份验证。我非常感谢任何建议,甚至是代码示例(如果有)。
amazon-web-services - AWS 认知。是否可以将用户导入用户池并将其与现有的开发人员身份验证相关联?
我们已经使用我们的自定义用户身份验证服务实现了一个开发者身份提供程序,并且我们有一个连接到它的身份池,其中保存了许多身份。现在,我们正在评估将我们的用户表移动到连接到同一身份池的用户池并使用 mobile-hub 库。
问题是:导入后,Cognito 是否可以检测到身份池中是否已经存在具有特定用户名的用户并且不会再次创建它(使用另一个身份)?自我注册已激活。
更新澄清:我们的身份池有近 1000 个现有身份。它们都是在用户池功能存在之前创建的。它们是使用“Developer Authenticated Identities Authflow”(检查链接)创建的,外部“Developer Provider”是一个简单的用户表。身份池中的每个身份标识都与我们外部用户表中的现有身份(记录)相关联。
现在我们想在我们的 iOS 应用程序中使用 AWS Mobile-hub 库和一个与现有身份池连接的用户池。我们想开始向我们的用户池添加新用户,但对于现有用户,他们已经在身份池中创建了一个身份。在这种情况下该怎么办?
似乎是,在第一次登录时,Cognito 没有一种机制来检测用户是否已经拥有由另一个身份验证流(Facebook,开发者提供者)创建的 IdentityId。
ios - AWS iOS Swift 3 Cognito Type 不符合协议
嗨,我在 iOS 中使用 AWS Mobile hub,我遵循了 aut with cognito 的介绍。它说我必须从示例中导入用户池文件。我这样做了,但这会给我一个错误:
错误:
类型“SignInViewController”不符合协议“AWSCognitoIdentityPasswordAuthentication”
还:
协议需要函数 'getDetails(_:passwordAuthenticationCompletionSource:)' 类型为 '(AWSCognitoIdentityPasswordAuthenticationInput, AWSTaskCompletionSource) -> Void'; 你想添加一个存根吗?(AWSCognitoIdentityProvider.AWSCognitoIdentityPasswordAuthentication)
和:
候选人的类型不匹配'(AWSCognitoIdentityPasswordAuthenticationInput, AWSTaskCompletionSource) -> ()'
amazon-web-services - 未找到 AWS Cognitio Swift 3 身份
按照 aws 的建议,当我尝试调用签名时,我按照移动集线器的介绍在应用程序中设置了我的 AWSCognito。它说找不到身份。身份在用户池中,我可以在后端看到它也标记为已验证。为什么会出现此错误?
代码:
错误:
GetCredentialsForIdentity 失败。错误是 [Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=10 "(null)" UserInfo={__type=ResourceNotFoundException, message=Identity 'eu-west-1:xxxxxxx' not found.}] AWSiOSSDK v2.4.16 [错误] AWSCredentialsProvider.m 行:577 | __44-[AWSCognitoCredentialsProvider 凭证]_block_invoke.353 | 无法刷新。错误是 [Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=10 "(null)" UserInfo={__type=ResourceNotFoundException, message=Identity 'eu-west-1:937fe0c4-974b-4f77-a835-425e1d9d9e00' not found.} ] 使用登录提供商登录结果 = nil, error = Optional(Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=10 "(null)" UserInfo={__type=ResourceNotFoundException, message=Identity 'eu-west-1:xxxxxxxxx'
amazon-web-services - 在 AWS Mobile Hub 的 DynamoDB 中,为什么没有创建本地二级索引的选项?
我正在创建一个应用程序并使用 AWS 的移动中心。由于某种原因,没有创建本地二级索引的选项。我在 2013 年的论坛上发现有人说故意不包括在内,因为这不是最佳实践。为什么会这样?如何在不使用扫描的情况下以不同的方式对数据进行排序?假设我想按评级和日期对用户帖子进行排序。创建两个具有相同主键和不同排序键的全局二级索引会更好吗?
aws-mobilehub - 弃用 credentialsProvider.logins 的 AWS 示例代码的一般性
我有一个一直在使用 AWS MobileHub 和 SNS 的 iOS 应用程序。在升级到 MobileHub 2.4.14 时,我遇到了 credentialProvider.logins 的弃用。我能找到的唯一解决方案是这篇SO 帖子将我引导到这个AWS 示例代码,尽管它是为开发人员身份验证的身份编写的并且针对 CognitoSync(我只想要 SNS),但它似乎解决了我的情况。
将示例代码调整到我的应用程序后,收到我的 Cognito 安全令牌后,我收到以下运行时错误消息:
错误消息并没有告诉我到底出了什么问题。我使用的身份池与升级前使用的身份池相同。我的身份池的 SNS 角色已经拥有所有 SNS 相关操作的权限。
令我困扰的是错误在 AWSCognitoSyncErrorDomain 中,我不想使用 CognitoSync。这个错误是示例代码的副作用吗?是否有示例代码可以在不涉及 CognitoSync 的情况下解决 credentialsProvider.logins 弃用问题?
谢谢
ios - AWS Cognito:“此身份池不支持未经身份验证的访问。”
我正在与"Unauthenticated access is not supported for this identity pool."
我的 Swift iOS 应用程序中的 AWS Cognito 问题作斗争。我之前使用 Firebase 进行身份验证和存储,但出于此问题范围之外的原因,我决定迁移到 AWS Mobile Hud。
我使用/已设置:
- Amazon Mobile Hud 提供所有服务
- AWS Cognito 通过 Mobile Hud 进行身份验证/身份验证
- Facebook 作为身份提供者已激活
- AWS DynamoDB 在控制台中激活但尚未使用
- AWS S3 在控制台中激活但尚未使用
我下载了为我的项目生成的示例应用程序并运行它。
通过示例应用程序,我能够通过 Facebook 和 Cognito 成功注册/验证。
什么有效?:我已将 AWS 的所有 SDK/框架集成到我的项目中,并且能够成功构建(注意:所有 AWS 框架都是通过 cocoapods 集成的,除了“AWSMobileHubHelper”作为静态框架)。
我可以构建应用程序并打开它
什么不起作用?:应用程序在打开后立即崩溃,并显示以下崩溃日志:
我试过什么?
- 将我的代码与示例应用程序进行比较: Result - 1:1 match 据我所见
- 将 Info.plist 与示例应用程序进行比较:结果 - 1:1 匹配(我复制了相关部分)
- 删除所有框架,清理,重建
- 清理所有模拟器数据(由另一个类似的问题引用)
- 相关问题的尝试方法:(检查未经身份验证的访问)
如果我允许未经身份验证的访问会发生什么?:相同,但响应标头不同:(
我越看它似乎是 AWSTask 的一个问题。
有什么想法我下一步可能去哪里吗?
amazon-web-services - AWS Lambda 无法访问从 MobileHub 创建的资源
我在从Lambda访问MobileHub中创建的资源时遇到问题,这对我来说根本没有意义。我有两个问题(也许是同一个问题..):
为什么当 lambda对这些特定资源具有完全访问权限时,它无法访问 MobileHub 创建的所有资源?我的意思是,如果我单独创建这些资源,我可以访问它们,但不能从 MobileHub 中创建它们。
有没有办法授予对这些资源的访问权限,或者我错过了什么?
更新
问题是VPC。基本上,当我在 lambdas 上启用 VPC 以访问没有公共访问权限的 rds 时,我无法访问任何其他资源,当我禁用它时 - RDS 无法访问。问题是如何将 vpc 与角色策略结合起来?
amazon-cognito - 我可以让 Mobile Hub 用户在没有用户名字段的情况下注册吗?
我尝试在 iOS 应用程序中实施注册 AWS Mobile Hub 流程。我选择了“您的用户将如何登录?” 只有电子邮件选项。但是测试应用程序(在创建用户池后从“集成步骤”页面下载)在注册和登录屏幕上需要用户名字段。我可以仅使用用户电子邮件和密码字段来实现此流程吗?
ios - awsmobilehub 和 cocoapods 集成
我已经开始使用 AWSMobileHub,我只是在完成集成步骤,但它似乎不能很好地与我打算在项目中使用的 cocoapods 配合使用。
我已经按照集成步骤添加了从 aws + 帮助代码下载的框架。
我已经将它们添加为嵌入式框架,就像这样
这编译并运行良好
然后我使用 pod init 将 cocoapods 添加到项目中,使用以下内容编辑 podfile 并创建工作区。
接下来是 pod install ,它添加了我添加到 podfile 的任何框架。
但是现在当我编译时出现以下错误。
如果我删除嵌入式框架并将它们添加到 podfile
我得到同样的错误。
这是我用于调试构建的其他链接器标志
编辑:看起来它允许在一些框架中添加 cocoapods 很好
当框架需要将 -ObjC 添加到其他链接器标志时,似乎会出现问题
以上是在 pod.debug.xcconfig 文件中
当我添加以下内容时,使用 aws 编译正常
作为例子
但是,如果我添加以下内容,它会添加 -ObjC 并导致所有错误
任何想法我应该在这里做些什么来让这些框架一起玩?
如果我尝试将显示作为 pod 文件添加到 AWSMobileHub“MySampleApp”附带的示例应用程序中,也会发生同样的情况
编辑 2:当我删除包含 AWSMobileHubHelper.framework 的 AMazonAws 文件夹并仅使用从 cocoapods 添加的 aws 文件进行编译时,它工作正常。添加 AmazonAws 文件夹时似乎会出现此问题。