我正在使用来自这个github repo的php oauth2库。
每当我发送刷新令牌时,我都会收到旧范围的新访问令牌。 但我想更改使用新访问令牌返回的范围。
当我第一次使用用户凭据授权类型生成令牌时,我获得了用户支持的范围并以这种方式存储它们。
$defaultScope = implode(" ", $scopes);$memory = new OAuth2\Storage\Memory(array('default_scope' =>$defaultScope));
$scopeUtil = new OAuth2\Scope($memory);
$this->server->setScopeUtil($scopeUtil);
$this->server->handleTokenRequest(OAuth2\Request::createFromGlobals())->send();
其中$ scopes是一个数组
例如$ scopes = array(" ADDUSER"," EDITUSER"," EDITROLE");
同样,如果我使用refresh_token grant类型发送刷新令牌,并使用修改后的$ scopes运行它 例如$ scopes = array(" ADDUSER"," EDITROLE");
$defaultScope = implode(" ", $scopes);$memory = new OAuth2\Storage\Memory(array('default_scope' =>$defaultScope));
$scopeUtil = new OAuth2\Scope($memory);
$this->server->setScopeUtil($scopeUtil);
$this->server->handleTokenRequest(OAuth2\Request::createFromGlobals())->send();
我收到了使用用户凭据授予类型生成新访问令牌时设置的旧范围(" ADDUSER EDITUSER EDITROLE")。
当使用刷新令牌生成新的访问令牌时,有没有办法更改范围? 或者我在这里做错了什么?
答案 0 :(得分:0)
客户可以"缩小范围"当它在刷新令牌授权中请求新的访问令牌时,请参阅此处规范中scope
的文档:https://tools.ietf.org/html/rfc6749#section-6但您的授权服务器可能支持也可能不支持。