1、问题
项目中用到了satoken,一次使用apipost测试接口,http header中Authorization的Bearer和token之间,不小心,敲了两个空格,服务端报token无效;【不太好排查】,最后发现,是多了一个空格,去掉后,保持一个空格,成功
2、分析
satoken参考文档

代码

是一个空格



根据tokenValue,拼接,取查找对应信息(如果Bearer和Token之间有两个空格,这里,tokenValue的第一个字符就是空格,出错的地方)

3、RFC文档
RFC6750
RFC 6750 - The OAuth 2.0 Authorization Framework: Bearer Token Usage

Authorization的值,是扩充巴克斯方式
RFC 5234
RFC 5234 - Augmented BNF for Syntax Specifications: ABNF
=》结合如下规则,1*SP,应该表示:至少一个空格 (所以,Authorization,Bearer后面如果有多个空格,后端服务器最好是能做下兼容处理,去掉多余的空格)

%x20 是 百分号编码(Percent-Encoding) 中的表示方式,表示ASCII字符码的十六进制值
%x20 表示空格字符(Space)

