Spring Boot OAuth2:.scopes() 函数的用途?

SpringBoot OAuth2: Purpose of the .scopes() function?

我目前正在学习 SpringBoots OAuth2.0 实现,我遇到了以下教程:http://www.tinmegali.com/en/2017/06/25/oauth2-using-spring/

包含这段代码:

@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
    clients.inMemory()
           .withClient("trusted-app")
           .authorizedGrantTypes("client_credentials", "password", "refresh_token")
           .authorities("ROLE_TRUSTED_CLIENT")
           .scopes("read", "write")
           .resourceIds(resourceId)
           .accessTokenValiditySeconds(accessTokenValiditySeconds)
           .refreshTokenValiditySeconds(refreshTokenValiditySeconds)
           .secret("secret");
}

我在 Internet 上查找了有关 scopes 函数的文档,但我根本找不到它的作用,包括官方 SpringBoot API 参考。我可以肯定地说的是它需要多个 string 参数。

上面代码段中的 scopes() 函数究竟做了什么?传入 ("read", "write") 与传入 "all" 或类似 "donkey" 的完全任意的东西有什么实际区别?

据我了解,这是您的客户端的socope。在创建 BaseClinetDetails.java 的实例时,您可以为 clinet 设置任何范围,并且在进行身份验证时,您可以使用方法 isScoped() 检查是否提供了任何范围。如果不是,那么请求的范围将被忽略。

如果 isScoped() returns true 您可以使用 getScope() 方法获取所有范围并决定身份验证请求是否是您预定义的范围。

虽然文档不清楚,但我尝试设置随机字符串并没有停止世界。