【问题标题】:What is the meaning of scope = scope-token *( SP scope-token ) scope-token = 1*( %x21 / %x23-5B / %x5D-7E ) in RFC6749 about OAuth2scope = scope-token *( SP scope-token ) scope-token = 1*( %x21 / %x23-5B / %x5D-7E ) 在关于OAuth2的RFC6749中是什么意思
【发布时间】:2016-06-05 00:30:06
【问题描述】:

scope = scope-token *( SP scope-token ) scope-token = 1*( %x21 / %x23-5B / %x5D-7E )是什么意思

RFC6749 3.3. Access Token Scope?

【问题讨论】:

    标签: oauth oauth-2.0 rfc6749


    【解决方案1】:

    所以我的解释是

    scope-token = 1*( %x21 / %x23-5B / %x5D-7E )
    

    似乎是说 scope-token 可以是定义的十六进制字符范围中的 1 个或多个 ascii 字符。所以基本上是 x21 (!) 到 x7E (~),但不允许 x22 (") 和 x5C (\)。有关字符列表及其十六进制代码,请参阅 here

    scope = scope-token *( SP scope-token )
    

    建议 scope 是一个 scope-token(如上定义),附加零个或多个 SP scope-tokens,其中 SP 是空格字符。

    所以一个有效的范围字符串应该是:

    scope = i am 5 scopes !!!!
    

    但这些不是有效的范围字符串:

    scope = "scope1" "scope2" "scope3"
    scope = scope1\scope2\scope3
    

    【讨论】:

      【解决方案2】:

      表达式是ABNF

      RFC6749 8.1. Defining Access Token Types 提到它。

      【讨论】:

        【解决方案3】:

        我在 javascript sn-p 中使用这个正则表达式来测试 OAuth2 服务器实现上的错误响应的 error_description 值,因为 error_description 还需要按照规范使用这些字符约束:https://www.rfc-editor.org/rfc/rfc6749#section-5.2

        const regex = /1*[\x21\x23-\x5B\x5D-\x7E]/g
        

        【讨论】:

          猜你喜欢
          • 2018-07-29
          • 2017-01-15
          • 2013-09-07
          • 2020-04-02
          • 1970-01-01
          • 2014-08-13
          • 2017-11-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多