客户端发送有效刷新令牌时,在发出新访问令牌时更改范围

时间:2016-09-02 07:07:30

标签: php oauth oauth-2.0

我正在使用来自这个github repo的php oauth2库。

PHP oauth2 library

每当我发送刷新令牌时,我都会收到旧范围的新访问令牌。 但我想更改使用新访问令牌返回的范围。

当我第一次使用用户凭据授权类型生成令牌时,我获得了用户支持的范围并以这种方式存储它们。

$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")。

当使用刷新令牌生成新的访问令牌时,有没有办法更改范围? 或者我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

客户可以"缩小范围"当它在刷新令牌授权中请求新的访问令牌时,请参阅此处规范中scope的文档:https://tools.ietf.org/html/rfc6749#section-6但您的授权服务器可能支持也可能不支持。