关于OAuth2,RFC6749中scope=scope token*(SP scope token)scope token=1*(%x21/%x23-5B/%x5D-7E)的含义是什么

关于OAuth2,RFC6749中scope=scope token*(SP scope token)scope token=1*(%x21/%x23-5B/%x5D-7E)的含义是什么,oauth,oauth-2.0,rfc6749,Oauth,Oauth 2.0,Rfc6749,scope=范围令牌*(SP范围令牌) 范围令牌=1*(%x21/%x23-5B/%x5D-7E) 所以我对它的解释是 scope-token = 1*( %x21 / %x23-5B / %x5D-7E ) 似乎是说范围标记可以是定义的十六进制字符范围中的1个或多个ascii字符。基本上是x21(!)到x7E(~),但不允许x22(“)和x5C(\)。有关字符及其十六进制代码的列表,请参阅 及 表示作用域是一个作用域标记(如上所述),附加了零个或多个SP作用域标记,其中SP是一个空格字符 因


scope=范围令牌*(SP范围令牌)
范围令牌=1*(%x21/%x23-5B/%x5D-7E)


所以我对它的解释是

scope-token = 1*( %x21 / %x23-5B / %x5D-7E )
似乎是说范围标记可以是定义的十六进制字符范围中的1个或多个ascii字符。基本上是x21(!)到x7E(~),但不允许x22(“)和x5C(\)。有关字符及其十六进制代码的列表,请参阅

表示作用域是一个作用域标记(如上所述),附加了零个或多个
SP作用域标记,其中SP是一个空格字符

因此,有效的作用域字符串应该是:

scope = i am 5 scopes !!!!
但这些不是有效的作用域字符串:

scope = "scope1" "scope2" "scope3"
scope = scope1\scope2\scope3
表达方式是


提到它。

我在测试OAuth2服务器实现上错误响应的
error\u description
值的javascript片段中使用此正则表达式,因为
error\u description
还需要符合规范的字符约束:

const regex=/1*[\x21\x23-\x5B\x5D-\x7E]/g
scope = "scope1" "scope2" "scope3"
scope = scope1\scope2\scope3