加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

zend-framework2 – 如何在Apigility中检查oAuth2范围?

发布时间:2020-12-13 16:58:14 所属栏目:PHP教程 来源:网络整理
导读:我正在创建一个apigility项目,我们将托管所有的API.我们需要能够使用OAuth2进行身份验证,但我们无法弄清楚如何控制对某些API的访问,似乎一旦客户端进行身份验证,他们就可以使用我们的任何API,但我们希望将它们限制为仅使用特定的API我们定义.在阅读了apigili
我正在创建一个apigility项目,我们将托管所有的API.我们需要能够使用OAuth2进行身份验证,但我们无法弄清楚如何控制对某些API的访问,似乎一旦客户端进行身份验证,他们就可以使用我们的任何API,但我们希望将它们限制为仅使用特定的API我们定义.在阅读了apigility使用的OAuth2 library之后,我看到有可以定义的范围,但我没有找到任何关于如何检查用户范围以查看他们是否具有访问权限的文档.我想知道这是否是限制访问某些API的最佳方式,以及如果它是如何设置,或者是否有更好的方法来控制访问?

解决方法

刚刚使用以下配方实现了此功能……

https://github.com/remiq/apigility-zfc-rbac-recipe

它工作得很好,只用了几个小时才能完成所有工作.

或者,您可以在Controller Action(资源方法)中进行检查

$identity =  $this->getIdentity()->getAuthenticationIdentity();
$scope = $identity["scope"]

if (! in_array('admin',$scope)) {
     return new ApiProblem(Response::STATUS_CODE_401,'No Auth');
}

上面的代码是未经测试的,但是如果你想这样做,应该让你走上正确的道路

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读