用于API令牌认证的AWS Cognito
我正在Java中构建HTTP API,该API使用AWS Cognito,而开发人员身份验证的身份可以提供令牌以保护API.我已经配置了登录系统以在用户登录时发出cognito令牌,并且cognito Identity池包含每个用户和与后端关联的开发人员身份,但是我很难找到一种直接的时间来找到用户特定用户特定的方法.来自Cognito代币的开发人员标识符.我试图使用AssumeRoleWithWebIdentityResult API调用,但无法找到用于确定开发人员标识符的文档,只是获得临时AWS凭据的示例. 解决方案 拥有临时AWS凭据,当您调用后端时,您可以在上下文中访问呼叫者的Cognito标识符.然后,您可以检索开发人员标识符使用服务器端上的lookupDeveloperIdentity.. 如果您使用的是)以检索上下文数据以检索上下文数据. rel =" nofollow"> api网关或其他解决方案 在GetopenidTokenFordevelveveler
0 2024-03-02
编程技术问答社区
使用AWS cognito身份创建用户
我正在学习使用AWS Lambda,DynamoDB,Cogito Sync创建无服务器API服务器.它进展顺利,直到我与users表混淆. 基本上,我正在尝试制作Twitter克隆API.因此,作为用户,我应该能够创建帖子,关注其他用户等. 注册和标志成功地通过Cognito身份来处理,问题是如何访问Cognito上的Users数据?用户可以具有包含其他用户ID的following和followers属性. 我当前所做的事情,在使用Cognito Identity注册的应用程序上,我将再次呼叫API网关,以在DynamoDB上创建user.因此,基本上有两个独立的用户数据.我不确定这是这样做的正确方法. 我应该在应用程序上的后端上打电话cognito吗?我应该为此提供单独的users表吗? ionic 上的前端代码示例前端代码 $scope.signup = function() { $ionicLoading.show({ templat
0 2024-03-02
编程技术问答社区
如何用python程序化地交换授权代码,从cognito获得访问令牌?
我一直在寻找有关如何交换授权_code的解决方案,以便从cognito务实地获取访问令牌.我创建了Cognito池和集成的应用客户端.因此,当我以以下格式调用登录域时,IAM获取登录页面并能够登录/注册 https:///login?response_type=code&client_id=&redirect_uri= 现在,上述URL将返回授权_code作为参数.我使用Post Man来获得结果,并通过以下查询返回ID令牌,Acccess令牌,刷新令牌. POST https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/token& Content-Type='application/x-www-form-urlencoded' grant_type=authorization_code& client_id=
0 2024-03-01
编程技术问答社区
登录Amazon Cognito用户池的REST(或CLI)API是什么?
如何通过Amazon Cognito REST API(用于用户池)在没有官方SDK的平台上进行登录? - 请注意,请注意我要求用户池 - 不是身份池. 概要 Amazon Cognito提供3种登录: 联合登录(创建 身份池 ) - 使用FB,Twitter,g+等等社交连接 AWS托管登录(创建 用户池 ) - 使用亚马逊自己的托管注册,签名,忘记密码,重置密码服务 开发人员提供了登录(我自己管理的自定义设计的身份验证服务) 我正在使用第二个(带有用户池) Amazon Cognito拥有多个用于Android,iOS,JavaScript,Xamarin等的SDK,Cognito还提供了REST API,可用于在官方SDK支持的平台上构建的REST API. 我正在为其他平台构建一个应用 ,因此,REST API是我唯一的方法,因为我的平台没有官方的SDK. Cognito REST API为'注册','忘记密码',确认验证'等,但令人惊讶的
0 2024-03-01
编程技术问答社区
AWS : 无效的身份池配置。检查为该池分配的IAM角色
我创建了一个用户池和身份池. 我使用了JavaScript SDK. 我可以注册,发送确认代码并使用JavaScript SDK成功确认用户. 但是,当我尝试使用身份验证方法登录用户时,并尝试通过以下代码传递IDToken来获得" CognitoIdentityCredentials"的凭据 logins[cognitoEndpoint + "/" + userPoolId] = jwtToken; AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: identityPoolId, Logins: logins }); 它给我以下错误 Error: Invalid identity pool configuration. Check assigned IAM roles for this pool. a
0 2024-02-23
编程技术问答社区
在AWS Lambda栈中为Angular添加服务器端渲染
因此,在我开始全面编码错误的路径之前,我正在研究Angular Universal是SSR,并在AWS文档上阅读以进行此操作. SSR主要用于速度和GoogleBot/SEO. 我在这里阅读白皮书: 我喜欢这种方法,但是我在图表中缺少两件事,这些图是我需要研究的: 我想拥有自己的AWS Cognito(也许是Google或Gihub添加的第三方身份经理) 的第三方身份经理) SSR页面在哪里? 我读过的AWS文档说,将其推到AWS Lambda的AWS CLI,其中包括一些TS文件(lambda.ts)等. 这是否使水桶过时并且不用于水疗中心? 可以在此AWS方法中以任何方式使用WebPack来使事情变得更容易吗? 旁注:我尚未全额使用AWS,并试图弄清楚如何根据上述需求整合我想要的环境. 解决方案 我想拥有自己的AWS Cognito(也许是Google或Gihub添加的第三方身份经理) 的第三方身份经理) AWS API网
无法将amazon-cognito-auth-js配置到具有SAML身份提供者的angular 4应用程序中。
我正在尝试将SAML服务提供商与AWS Cognito pool集成.我已经浏览了很多文档并试图实现.当我单击登录时,无论是重定向而已.这是给出的 Cognito池和身份提供商配置正确. 当我需要从前端应用程序进行身份验证时,问题就会出现 有人可以帮我纠正同样的事情吗? 这是我的代码 步骤1: npm install amazon-cognito-auth-js --save 步骤2:在AngularCli.json中添加以下线 "../node_modules/amazon-cognito-auth-js/dist/amazon-cognito-auth.js", "../node_modules/amazon-cognito-auth-js/dist/amazon-cognito-auth.min.js.map", "../node_modules/amazon-cognito-auth-js/dist/aws-cognito-sdk.js" step3:a
0 2024-02-21
编程技术问答社区
如何使用Amplify将angular应用程序中的AWS-Cognito用户池改为另一个用户池?
目前在Angular应用程序中工作.我正在尝试将Cognito用作身份验证服务. 从我的VCode终端并使用Amplify CLI中,我创建了用户池,正如文档所示,Amplify创建了aws-export.js文件.在AWS帐户中,我能够检查从终端创建的所有设置 这是通过Amplify 插入我的应用程序文件夹结构中的AWS-EXPORT.JS文件 const awsmobile = { "aws_project_region": "us-east-2", "aws_cognito_identity_pool_id": "us-east-2:THE_USER_POOL", "aws_cognito_region": "us-east-2", "aws_user_pools_id": "us-east-2_SOME_STRING", "aws_user_pools_web_client_id": "THE_CLIENT_ID_HERE",
0 2024-02-21
编程技术问答社区
Angular AWS Amplify认证器的外部字段
我正在尝试使用AWS和Angular进行AWS进行使用,以使用Cognito进行身份验证,当我调用组件时,我面临的问题是: 我并没有随附所有字段进行注册,我按照Cognito中的要求标记,因此它总是返回一个错误,例如:缺少字段名称,例如 所以我的问题是,如果他们不返回我根据需要标记的一些字段,我该如何添加它,而不必更改组件本身的来源. ps:im使用角,AWS-amplify-angular. 解决方案 在撰写本评论时不会出现完整版本的Angular或React(仅VUE),但是Beta版本确实有一些选项. 您可以通过添加以下软件包获得Beta: npm install aws-amplify-angular@beta 并更新Amplify-Wauthenticator组件看起来像:
2 2024-02-21
编程技术问答社区
NestJs/Angular/Cognito流程
如果没有具体示例,就难以正确地验证和授权流. Nestjs Doc有一个很好的JWT令牌的例子,但是我发现很难建立正确的流程. 这是我能够解决授权流的最接近: 经过身份验证后,将刷新令牌存储在DB中(我不太喜欢但找不到更轻松的处理方法),将访问令牌发送到Angular并将其保存在本地存储或Cookie 在每个请求中,发送访问令牌,并检查其是否仍然有效并且不接近到期;如果它已过期或即将到期,请转到DB,获取刷新令牌并使用它来获取新的访问令牌.我也非常希望将刷新存储在cookie中,但是问题在于,我不知道如何在实施JWTSTRATETRATEGY时如何获得比授权标题更多的,以及什么是最好的(如果有)附加的方法刷新令牌 如果更新了访问令牌,请以某种方式将其发送回角侧以替换.发送过期的时间,因此,如果有同时的请求,Angular Side不会用较旧的访问令代替较新的访问令牌.但是并发请求仍然有机会陷入比赛状态,每个要求分别请求访问令牌. 上面的摘要中有很多细节,但这应该给我
0 2024-02-21
编程技术问答社区
Angular + amazon-cognito-identity-js,为什么我得到的错误是:Global没有定义
从命令行: ng new sandbox cd .\sandbox\ ng serve 打开 http://localhost:4200/.它有效. npm install --save amazon-cognito-identity-js 内部\src\app\sign-up\sign-up.component.ts添加以下代码线: import * as AmazonCognitoIdentity from 'amazon-cognito-identity-js'; 添加一个构造函数: constructor() { new AmazonCognitoIdentity.CognitoUserPool({}); } 刷新 http://localhost:4200/. 页面是空白的.有一个控制台错误: Uncaught ReferenceError: global is not defined at Objec
0 2024-02-21
编程技术问答社区
ListCollections在安卓应用中没有列出正确的集合-AWS Rekognition
好吧,所以我已经呆了大约一个多星期了,我知道这是一个愚蠢的错误.只是无法弄清楚.我正在研究一个项目,该项目可提供两个平台Android&iOS.它是一个面部识别应用程序. 当我尝试从iOS应用程序和Python脚本创建/访问集合时,它们都从我的AWS帐户访问相同的集合. 但是,当我尝试从Android应用程序访问时,它会创建/访问其自己的集合. Android应用程序创建的集合既无法访问此Android应用程序以外的任何地方,也无法访问由iOS App或Python脚本创建的集合. 我尝试在所有这三个平台上列出集合. iOS和Python列表在Android应用程序列出的集合时完全相同是由Android应用程序创建的集合. 这是我用来列出Android上的集合的代码: mCredentialsProvider = new CognitoCachingCredentialsProvider( mContext.getA
0 2024-02-11
编程技术问答社区
移动应用程序网站和服务器API和cognito
是否建议直接从移动设备与通过自己的服务器进行cognito进行身份验证?我当时认为服务器可以使用Cognito进行身份验证,从而允许服务器团队处理的单端点来处理Android的身份验证,该应用程序的iOS版本与该应用程序分开处理,然后必须处理潜在的更改的更改重新定位. Cognito作为身份验证终点. 为什么在移动应用程序与将其保存在服务器API中的一个位置上的额外逻辑? 解决方案 在我的公司中,我们在服务器端编写了所有Cognito东西.它具有以下好处 我们不需要阅读Android和iOS的SDK文档. 我们无需更新Android和iOS SDK即可以兼容每个API(EX API 27,28)版本. 我们将通过避免为每个平台集成SDK来减少开发人员的时间 将来,我们可以在AWS Congnito之上创建托管服务以邀请外部服务.就像一个微服务会与另一个微服务交流一样;只是消耗API. 我强烈建议您这样做.时间就是金钱.没有任何意义可以学习一次SDK每2个月改变一
0 2024-02-11
编程技术问答社区
AWS Api Gateway和Cognito on Android-错误401
我在将Cognito与Apigateway集成在一起时遇到了问题. 首先,我与Cognito签名,而不是问题,我得到了所有令牌. 然后,我必须打电话给API网关.我正在为Android使用自动生成的SDK. 我在此处跟随示例:CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider( context, CognitoConstants.IDENTITY_POOL_ID, CognitoConstants.REGION); String token = cognitoUserSession.getIdToken().getJWTToken(); Map logins = new HashMap(); logins.put(CognitoConstants.LOGIN_MAP_KEY, token); credentialsPr
2 2024-02-10
编程技术问答社区
如何在cognito-android中检查现有用户?
所以我在Android中建立了AWS.我想执行检查以查看用户何时进入用户名,该用户名在我的Cognito池中尚不存在. 目前我有: cognitoUser = userPool.getUser(username_ET.getText().toString()); if(cognitoUser.getUserId().isEmpty()) { //Great, this is a new user. } 但是,认知者只是设置为我投入的任何东西,它不会返回检查. 希望有人可以提供帮助! 解决方案 如果您尝试使用不存在的用户名登录,您将获得usernotfoundexception异常. 其他解决方案 Listusers 现在使它变得更加容易. 这是一个简单的.NET示例: Dim userRequest = New ListUsersRequest With { .UserP
0 2024-02-10
编程技术问答社区
如何在安卓系统中使用TransferUtility和Cognito用户/身份池
我需要在Android中将一个文件上传到S3存储桶. 我们想通过Cognito用户池进行身份验证上传. 这样做的标准方法是使用来自Amazon Amplify SDK的存储API. 问题是我需要报告上传的上传进度,并且放大存储不允许您设置侦听器来观察Android中的进度. 这使我需要使用TransferUtility. 我应该如何使用Cognito具有转移性的Cognito来验证上传操作? 目前我正在做: val credentials = CognitoCachingCredentialsProvider( context, "eu-west-1:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", Regions.US_WEST_1) val s3Client = AmazonS
Cognito & DynamoDB: "未授权执行: dynamodb:UpdateItem on resource"
完全按照CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider( getApplicationContext(), "eu-west-1:01234567-abcd-8901-efab-234567890123", // Identity Pool ID Regions.EU_WEST_1 // Region ); AmazonDynamoDBClient ddbClient = new AmazonDynamoDBClient(credentialsProvider); final DynamoDBMapper mapper = new DynamoDBMapper(ddbClient); final Book book = new Book("My new book"); // Simplified version of Book new Thread(
6 2024-02-09
编程技术问答社区
使用Amazon Cognito访问AWS Iot时出现禁忌异常
我正在创建一个使用Amazon Cognito身份验证连接到AWS IoT的Android应用程序.我能够成功地验证用户,并且能够获得凭据. 使用这些凭据更新事物时,总是返回403 Forbidden例外.我已经尝试了所有方法来解决问题,但没有找到解决方案. 我的IAM政策是: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow", ], "Resource": [ "arn:aws:iot:us-west-2::thing/mythingname
4 2024-02-06
编程技术问答社区
Cognito / S3用户的具体政策
我正在将AWS SDK与Cognito一起用于Android,以对我的AWS资源进行身份验证用户(通过Amazon登录).我是尝试是设置像这样的S3桶: ./my-bucket ├── first_user@email.com └── second_user@email.com 因此,my-bucket存储桶将基于用户的电子邮件地址提供文件夹. 我第一个设置该政策的刺伤就是这样: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::my-bucket"] }, { "Effect": "Allow", "Action": [ "s3:GetObject",
0 2024-02-05
编程技术问答社区
谷歌认证在安卓系统的AWS Cognito身份池中失效
我呼叫Amazon.CognitoIdentity.AmazonCognitoIdentityClient.GetIdAsync() 时得到NotAuthorizedException:Token is not from a supported provider of this identity pool 我不明白为什么,代币是通过使用GoogleSignInApi进行认证而获得的,并且AWS身份池配置为联合到Google身份验证提供商,该验证提供商具有相同的" Google WebApp客户端ID",用于在Android设备上进行身份验证. 还尝试使用2种不同的方式获得Google令牌 在.RequestIdToken()上使用.RequestIdToken()的结果GoogleSignInOptions 通过调用GoogleAuthUtil.GetToken api 检查时两个令牌都是不同的,都看起来像是好令牌,并且在给出AmazonCognitoIdenti
2 2024-02-04
编程技术问答社区