我正在使用适用于AWS Cognito的JavaScript SDK,并且有一些我似乎无法保存的自定义属性,无法查看原因.
问题属性是可变字符串字段,如下所示:
custom: role
custom: recruitingrole
custom: title
Run Code Online (Sandbox Code Playgroud)
同一请求中的其他自定义字段似乎更新确定.具体来说,这些似乎工作:
custom:division
custom:linkedin
custom:location
custom:bio
Run Code Online (Sandbox Code Playgroud)
当我通过SDK提交时,会返回:
{"__ type":"NotAuthorizedException","message":"客户端试图写未经授权的属性"}
以下是发送的数据,如Chrome开发人员控制台网络输出中所示:
{
"AccessToken": "",
"UserAttributes": [{
"Name": "name",
"Value": "Steve Austin"
}, {
"Name": "custom:company",
"Value": "OSI"
}, {
"Name": "custom:division",
"Value": "Bionics"
}, {
"Name": "custom:recruitingrole",
"Value": "other"
}, {
"Name": "custom:linkedin",
"Value": "http://www.linkedin.com"
}, {
"Name": "custom:location",
"Value": "Mexico City, Mexico City, Mexico"
}, {
"Name": "custom:bio",
"Value": "A man barely alive."
}]
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议我为什么不能保存这些属性?
谢谢
我一直在研究为Web应用程序设置登录,让客户端查看S3中托管的数据,并发现AWS Cognito有一个托管的Web UI [link],可以为我处理大部分身份验证流程,我面临的问题是我无法找到如何将Web UI的输出集成到我的应用程序中.Cognito中的大多数现有文档仅引用了如何使用各种API来创建自己的UI,这让我对我的问题的答案感到困惑.
是否有任何使用Cognito托管UI创建的信息?
亚马逊表示,您可以在几分钟内将经过身份验证的登录与Cognito集成,但我已经看了几周而且无法弄明白.
javascript amazon-s3 amazon-web-services amazon-cognito aws-cognito
这是关于供应商锁定和AWS认知的问题.如果我们离开AWS,用户数据和加密/散列密码是否可以从cognito导出?
可以/是否可以使用标准哈希或用户密码的可配置哈希或允许导出令牌之类的东西?
我将AWS Cognito Identity Pool配置为使用Cognito User Pool作为身份验证提供程序.
假设我在Cognito Identity Pool中具有身份的身份ID(例如,us-east-1:XXaXcXXa-XXXX-XXXX-XXX-XXXXXXXXXXXX),其中该身份具有到Cognito用户池中的用户的链接登录.
使用身份ID,我如何获取链接的用户详细信息(电子邮件,电话,用户名)?
我对Cognito的解读是,它可以代替本地Django管理数据库来验证网站用户.但是,我没有找到任何一个基本的"Hello,World"应用程序的例子,其中登录屏幕通过Cognito.如果有人可以发布一篇文章,逐步展示如何创建Hello World Django应用程序和Cognito用户池,以及如何通过调用AWS替换Django中的默认身份验证,我将非常感激. Cognito.
特别是我需要知道如何从Cognito管理站点收集设置对Cognito API的调用以验证用户所需的信息.
有两种情况需要考虑:App用户登录App,管理员登录django站点管理URL.我假设我想在两种情况下使用Cognito,否则我将留下一个潜在的漏洞,其中Admin URL使用较弱的登录技术.
AWS论坛和StackExchange上的当前答案要么说:
(1)使用Cognito对网站进行身份验证是浪费时间,它仅用于访问AWS资源
(2)这不是浪费时间.我即将放弃.我已经创建了一个示例Cognito用户池和用户组,并在网上搜索此用例的正确示例.(没有找到,或者我不会写.)
(3)https://github.com/capless/warrant,https://github.com/metametricsinc/django-warrant是从AWS论坛两种可能的解决方案.
python authentication django amazon-web-services amazon-cognito
当用户通过 Google 和 Facebook 身份提供商使用相同的电子邮件地址登录时,AWS Cognito 在用户池中创建多个条目,每个身份提供商使用一个条目:
我使用本教程中提供的示例代码来设置 AWS Cognito:使用 Amplify 框架进行用户身份验证的完整指南
amazon-web-services google-login amazon-cognito aws-lambda amazon-cognito-facebook
我愿意为我的应用程序使用同步服务.但我想选择最好的一个.我想知道哪一个更好.我的应用程序将在Android,IOS,Windows和Web上运行.
我正在使用Firebase,因为我测试了它.它给了我快速的结果,它也允许我离线工作.它会更好还是我会选择Parse或AWS Cognito?
我还可以选择Google Cloud.Google Cloud是否提供Firebase等服务?Parse和Firebase一样可以实时更新吗?
我使用AWS Cognito来管理我的Web应用程序的用户注册和用户访问.具体来说,我使用的是Cognito托管的UI.这意味着Cognito为我的用户提供了一个用户注册用户界面,我没有权限修改我的应用程序的用户注册或登录页面(除了Cognito提供的控件).我使用电子邮件地址作为用户名,因此只需要新用户提供电子邮件地址和密码.
Cognito将电子邮件地址视为区分大小写.如果用户使用电子邮件地址JOHN_smith@randommail.com注册,则他们无法使用john_smith@randommail.com登录.
我希望注册和登录的用户电子邮件地址不区分大小写.
通常,在将电子邮件地址发送到服务器之前,通过在客户端中将电子邮件地址设置为小写来处理这一点很简单.但是我无法访问由Cognito托管的客户端UI.
因此,我的计划是尝试使用Cognito预注册触发器调用的Lambda函数来小写用户提供的电子邮件.
预注册
当用户尝试注册(注册)时,Amazon Cognito会调用此触发器,允许您执行自定义验证以接受或拒绝注册请求.
这是我写的lamdba函数:
'use strict';
console.log('Loading function');
exports.handler = (event, context, callback) => {
console.log('Received event:', JSON.stringify(event, null, 2));
var triggerSource = event.triggerSource;
console.log('Received triggerSource:', triggerSource);
var email = event.request.userAttributes.email;
console.log('Received email:', email);
var modifiedEvent = event;
if (email !== null) {
var lowerEmail = email.toLowerCase();
modifiedEvent.request.userAttributes.email = lowerEmail;
console.log('Set email in request to', lowerEmail);
console.log('Modified event:', JSON.stringify(modifiedEvent, null, 2));
} else {
console.log('Email evaluated as NULL, exiting …Run Code Online (Sandbox Code Playgroud) 我问这个问题是因为我很惊讶我从谷歌搜索中找到的信息如此之少。然而,我能够找到我认为的根本原因。我会将其作为答案分享,看看是否有人能够详细说明或提供更好的解释。
因此,为了澄清,我正在使用适用于 Cognito 的 AWS JavaScript SDK。当我尝试一些标准用例时,我收到以下错误:
客户端已配置为机密,但未收到机密
我可以采取什么步骤来解决这个问题?
amazon-cognito ×10
aws-cognito ×3
javascript ×3
amazon-s3 ×1
aws-lambda ×1
django ×1
firebase ×1
google-login ×1
python ×1