【问题标题】:AWS Cognito Password Regex - Specific to AWS Cognito [duplicate]AWS Cognito 密码正则表达式 - 特定于 AWS Cognito [重复]
【发布时间】:2020-03-05 04:05:06
【问题描述】:

谁能给我正则表达式来匹配有效的 AWS Cognito 密码 - 带有数字、特殊字符(他们的列表)、大小写字母

AWS Cognito 默认长度限制为 6 个字符,并且有自己的特殊字符列表

请注意,AWS Congito 密码正则表达式特定于 AWS Congnito - 而不仅仅是通用密码正则表达式。

【问题讨论】:

    标签: regex amazon-web-services oauth passwords amazon-cognito


    【解决方案1】:

    更新答案 - 2021 年 12 月


    /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[\^$*.\[\]{}\(\)?\-\"!@#%&\/,><\':;|_~`])\S{8,99}$/
    

    解释:

    • / 表示正则表达式的开始
    • ^ 开始。匹配字符串的开头。
    • (?=.*[a-z]) 需要小写字母
    • (?=.*[A-Z]) 需要大写字母
    • (?=.*[0-9]) 需要数字
    • (?=.*[\^$*.\[\]{}\(\)?\-"!@#%&amp;\/,&gt;&lt;\’:;|_~`]) 需要特殊字符(仅限AWS Cognito 列出的特殊字符)。
    • \S 不允许使用空格(空格、制表符、回车)
    • {8,99} 最少 8 个字符,最多 99 个字符
    • $ 结束。匹配字符串的结尾。
    • / 关闭。

    互动示例:

    【讨论】:

    • 上面的正则表达式对我来说失败了,因为它缺少一些特殊字符。我在这里更新了它以使用默认的 cognito 密码配置:/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[=+\-^$*.\[\]{}()?"!@#%&amp;/\\,&gt;&lt;':;|_~`])\S{8,99}$/
    • 根据regex101.com,正则表达式无效,因为没有转义正斜杠。另外,我们在 S3 存储桶上部署的反应版本中使用这个正则表达式时遇到了真正的问题(在本地它工作)。我也质疑 6 个字符是默认值,我认为它是 8 个。
    • @CodingYourLife 抱歉,这给您带来了麻烦——出了什么问题?我在 regex101.com 上看到它在 PHP 中使用时会抱怨 - 如果您在 React 中使用它,它应该是有效的。 PHP 和 JS 似乎都对转义的正斜杠感到满意,所以我将更新答案。我还看到 8 现在是默认值 - 我会再次更新。
    • @hugo 这里是它部署到 S3 的地方,它似乎工作正常。 awspasswordregex.s3-website-eu-west-1.amazonaws.com 代码很简单,如果您想了解它是如何工作的,请查看源代码。我将更新答案以使用常规引号 - 谢谢 indigoi
    • Cognito 默认值包括 =、- 和 +。不幸的是,它们没有在官方文档中列出,但默认情况下它们被 Cognito 承认。这些直接取自 Cognito AWS 控制台:(^ $ * . [ ] { } ( ) ? - " ! @ # % &amp; / \ , &gt; &lt; ' : ; | _ ~ `` + =)
    猜你喜欢
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 2017-04-08
    • 2020-08-06
    • 2019-03-19
    • 2018-02-22
    相关资源
    最近更新 更多