【问题标题】:what characters are allowed in a JWT token?JWT 令牌中允许使用哪些字符?
【发布时间】:2022-02-07 21:10:15
【问题描述】:

我看到 JWT 令牌由 A-Z、a-Z、0-9 和特殊字符 -_ 组成。我想知道 JWT 令牌中允许的字符列表?

【问题讨论】:

标签: jwt


【解决方案1】:

来自JWT introduction:“输出是三个用点分隔的 Base64-URL 字符串”。

Base64 有一个number of different variants,具体取决于编码的使用位置。典型的 MIME base64 将使用 +/ 作为最后两个字符,但 Base64-URL (RFC 4648 §5) 旨在用于 URL 和文件名,因此请改用 -_

因此,JWT 将使用字符 a–z、A–Z、0–9 和 -_.。或者,作为正则表达式:

[a-zA-Z0-9-_.]+

如果您想改进正则表达式以匹配所描述的格式:

^[a-zA-Z0-9-_]+\.[a-zA-Z0-9-_]+\.[a-zA-Z0-9-_]+$

根据您的正则表达式风格,\w 应该与 [a-zA-Z0-9_] 匹配,这样您也许可以使这看起来更整洁:

^[\w-]+\.[\w-]+\.[\w-]+$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-30
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 2011-06-15
    相关资源
    最近更新 更多