我看到JWT令牌由A-Z,a-Z,0-9和特殊字符-
和_
组成。我想知道JWT令牌中允许的字符列表吗?
答案 0 :(得分:9)
来自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-_]+$