在请求的 token 中,确实不支持 @
字符。常见的 token 通常使用 Base64Url 编码,这种编码方式明确排除了 @
字符。Base64Url 编码使用以下字符集:
-
字母:
- 大写字母:A-Z
- 小写字母:a-z
-
数字:
- 0-9
-
特殊字符:
-
(连字符)_
(下划线)
这些字符的选择是为了确保在 URL 中传输时不会引起编码问题。具体来说,Base64Url 编码不会使用以下字符:
+
和/
(这些字符在 Base64 编码中使用,但在 URL 中有特殊意义)=
(填充字符,在 URL 中不适合使用)@
(在 URL 和电子邮件地址中有特殊用途)
以下是一个常见的 JSON Web Token (JWT) 结构示例:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
这个 JWT 示例中每个部分都使用了 Base64Url 编码,其中不会出现 @
字符。
因此,在生成和使用请求 token 时,确保使用符合 Base64Url 编码规范的字符集,以避免在传输过程中遇到问题。