标签: amazon-cognito

Amazon Cognito"客户端尝试写未经授权的属性"

我正在使用适用于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)

任何人都可以建议我为什么不能保存这些属性?

谢谢

javascript amazon-web-services amazon-cognito

32
推荐指数
4
解决办法
1万
查看次数

Cognito托管的UI

我一直在研究为Web应用程序设置登录,让客户端查看S3中托管的数据,并发现AWS Cognito有一个托管的Web UI [link],可以为我处理大部分身份验证流程,我面临的问题是我无法找到如何将Web UI的输出集成到我的应用程序中.Cognito中的大多数现有文档仅引用了如何使用各种AP​​I来创建自己的UI,这让我对我的问题的答案感到困惑.

是否有任何使用Cognito托管UI创建的信息?

亚马逊表示,您可以在几分钟内将经过身份验证的登录与Cognito集成,但我已经看了几周而且无法弄明白.

javascript amazon-s3 amazon-web-services amazon-cognito aws-cognito

32
推荐指数
2
解决办法
1万
查看次数

您是否可以将用户从AWS cognito导出/迁移,是否会导致供应商锁定?

这是关于供应商锁定和AWS认知的问题.如果我们离开AWS,用户数据和加密/散列密码是否可以从cognito导出?

可以/是否可以使用标准哈希或用户密码的可配置哈希或允许导出令牌之类的东西?

amazon-web-services amazon-cognito

31
推荐指数
2
解决办法
7687
查看次数

如何使用cognito身份标识获取用户属性(用户名,电子邮件等)

我将AWS Cognito Identity Pool配置为使用Cognito User Pool作为身份验证提供程序.

假设我在Cognito Identity Pool中具有身份的身份ID(例如,us-east-1:XXaXcXXa-XXXX-XXXX-XXX-XXXXXXXXXXXX),其中该身份具有到Cognito用户池中的用户的链接登录.

使用身份ID,我如何获取链接的用户详细信息(电子邮件,电话,用户名)?

amazon-web-services amazon-cognito

30
推荐指数
2
解决办法
3万
查看次数

AWS Cognito作为网站的Django身份验证后端

我对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

30
推荐指数
2
解决办法
8215
查看次数

如何修改AWS Cognito用户池的访问和标识令牌的到期时间

我找不到任何文档说明是否以及如何修改AWS Cognito用户池的访问和身份令牌的到期时间.

文件规定,在默认情况下排放期满后1小时.

有没有办法修改到期时间?

amazon-web-services amazon-cognito aws-cognito

28
推荐指数
5
解决办法
1万
查看次数

AWS Cognito:处理从不同身份提供商(Google、Facebook)登录的同一用户(使用相同电子邮件地址)的最佳实践

当用户通过 Google 和 Facebook 身份提供商使用相同的电子邮件地址登录时,AWS Cognito 在用户池中创建多个条目,每个身份提供商使用一个条目:

AWS Cognito 用户池的屏幕截图

我使用本教程中提供的示例代码来设置 AWS Cognito:使用 Amplify 框架进行用户身份验证的完整指南

  • 如何只创建一个用户而不是多个用户?
  • 是否可以让 AWS Cognito 自动将来自多个提供商的条目合并(联合)到一个条目中,还是应该使用 AWS Lambda 函数来实现这一点?

amazon-web-services google-login amazon-cognito aws-lambda amazon-cognito-facebook

28
推荐指数
3
解决办法
7855
查看次数

在Parse,Firebase和AWS Cognito之间哪个用户更好?

我愿意为我的应用程序使用同步服务.但我想选择最好的一个.我想知道哪一个更好.我的应用程序将在Android,IOS,Windows和Web上运行.

我正在使用Firebase,因为我测试了它.它给了我快速的结果,它也允许我离线工作.它会更好还是我会选择Parse或AWS Cognito?

我还可以选择Google Cloud.Google Cloud是否提供Firebase等服务?Parse和Firebase一样可以实时更新吗?

amazon-web-services parse-platform firebase amazon-cognito

27
推荐指数
1
解决办法
2万
查看次数

AWS Cognito用户名/电子邮件登录区分大小写

建立

我使用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)

amazon-web-services amazon-cognito aws-cognito

25
推荐指数
1
解决办法
3465
查看次数

如何解决 AWS Cognito SDK 错误:“客户端 <XYZ> 已配置机密,但未收到机密?”

我问这个问题是因为我很惊讶我从谷歌搜索中找到的信息如此之少。然而,我能够找到我认为的根本原因。我会将其作为答案分享,看看是否有人能够详细说明或提供更好的解释。

因此,为了澄清,我正在使用适用于 Cognito 的 AWS JavaScript SDK。当我尝试一些标准用例时,我收到以下错误:

客户端已配置为机密,但未收到机密

我可以采取什么步骤来解决这个问题?

javascript amazon-cognito

25
推荐指数
4
解决办法
3万
查看次数