能否用adminGetUser检查Cognito邮箱是否存在?该行为是否有文档记录?
关于使用
adminGetUser检查Cognito邮箱是否存在的问题解答 1. 能否通过adminGetUser检查邮箱是否存在?
完全可以。当你将邮箱配置为Cognito用户池的别名后,调用adminGetUser时把Username参数设为目标邮箱地址:
- 若该邮箱已关联用户,接口会返回该用户的完整信息(包括uuid用户名、邮箱属性等);
- 若邮箱未被注册,接口会抛出
UserNotFoundException异常,捕获这个异常即可判断邮箱不存在。
示例调用代码:
const params = { UserPoolId: '你的用户池ID', Username: '要检查的邮箱地址' }; cognitoIdentityServiceProvider.adminGetUser(params, (err, data) => { if (err) { if (err.code === 'UserNotFoundException') { console.log('该邮箱未注册'); } else { console.error('调用出错:', err); } } else { console.log('邮箱已存在,用户信息:', data); } });
2. 兼容邮箱别名的行为是否有官方文档记录?
是的,该行为属于Cognito的标准特性,有官方文档明确说明。虽然基础参数描述仅提到"要检索的用户名",但AWS对adminGetUser的Username参数完整定义包含:当用户池配置了别名(如邮箱、手机号)时,Username参数既可以接收用户名本身,也可以接收任何已启用的别名值。
这也解释了为什么你用uuid作为用户名、邮箱作为别名时,传入两者都能正常调用adminGetUser——这是用户池别名机制的既定行为,并非未公开的特性。
内容的提问来源于stack exchange,提问作者bcperth
相关产品推荐
相关产品推荐

