因此,我试图了解AWS Cognito,但我遇到了一些问题.
所以,现在我可以注册一个帐户,并验证并登录.简单就够了.边缘的情况是我的墙壁.
这是我到目前为止的信息:
username一旦创建,就不能改变username价值观email被标记为别名,在Cognito术语中表示我可以使用它来进行登录username.如果email选择作为别名,则根据文档,相同的值不能用作用户名(http://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user -pool-settings-aliases):
如果选择电子邮件作为别名,则用户名与有效的电子邮件格式不匹配.同样,如果选择电话号码作为别名,则该用户池的服务将不接受与有效电话号码模式匹配的用户名.
只有在帐户经过验证后,该email地址才能用于登录(http://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-别名)
在验证电话号码和电子邮件地址后,电话号码和电子邮件地址仅成为用户的活动别名.因此,如果您选择将它们用作别名,我们建议您选择自动验证电子邮件地址和电话号码.
这就是我的优势所在.
如果一个用户注册,但不立即确认:
在他们看来,他们已注册但未验证他们的帐户.在这一点上,它实际上没有办法验证他们认为他们注册的帐户.我猜它可以通过消息解决:
"在您验证电子邮件地址之前,警告您的帐户不会被创建." 或类似的规定.无论如何...
username.username甚至可以是什么,因为他们只输入了他们的电子邮件地址."堆积"可能是一个过于强烈的短语,这可能是一个非常边缘的情况.
现在好的方面是,因为他们没有"验证"他们,email他们可以使用相同的email地址再次注册,因为email它没有得到唯一约束,直到它verified.如果有人试图验证已经验证的地址,他们会得到一个AliasExistsException.这实际上提出了一个我刚刚测试过的有趣点.
我可以使用电子邮件地址注册,然后验证该电子邮件地址,以便确认该帐户.然后,我可以右转并使用相同的电子邮件地址注册,在尝试使用重复的电子邮件地址验证该帐户之前,我没有收到正式的AWS错误.以前没有办法表明这个错误?我想期望开发人员在预注册触发器中编写验证服务:
当用户提交其信息以进行注册时,将调用此触发器,允许您执行自定义验证以接受或拒绝注册请求.
总结一下,并重申一下这个问题:
实际上,似乎需要在使用带有Cognito的电子邮件地址时需要预先注册Lambda,以确保不存在具有电子邮件的帐户,因为在验证尝试之前不会处理AWS异常制作.
我的假设在这里是否正确?根据这里的要求,我认为让用户知道电子邮件地址不能尽快提供是非常合理的.例如:
John …Run Code Online (Sandbox Code Playgroud) 我需要限制mousemove事件,我按照下面的提示构建方法,但不起作用: 在React.js中执行debounce
这是我的代码(http://jsbin.com/binesofepo/edit?js,console,output):
class Tool extends Component {
constructor(props) {
super(props);
this._onMouseMove = _.throttle(this._onMouseMove.bind(this), 1000)
}
render() {
return (
<div ref="tool" className="tool">
<div ref="toolBody"
className="tool__body"
onMouseMove={this._onMouseMove}></div>
</div>
)
}
_onMouseMove(e) {
e.persist()
console.log(e.screenX)
}
}
Run Code Online (Sandbox Code Playgroud)
如果你把鼠标移到上面tool__body,它会发出很多警告:
警告:出于性能原因,将重复使用此合成事件.如果您看到这个,那么您将
screenX在已发布/无效的合成事件上访问该属性.这被设置为null.如果必须保留原始合成事件,请使用event.persist().有关更多信息,请参见fb.me/react-event-pooling.
我的反应版本:"15.0.2"
似乎e.persist()效果不好.任何的想法?:d