Php OAuth与授权

Php OAuth与授权,php,authentication,oauth-2.0,authorization,Php,Authentication,Oauth 2.0,Authorization,我构建了一个带有身份验证机制的RESTful服务。身份验证使用OAuth协议(来自OAuth.net的库) 我的服务是学校管理。我现在只有教师小组。现在我还想添加学生面板,它几乎是一样的,但我不希望学生能够编辑东西,所以在这种情况下需要授权 当教师想要登录时,他将post请求发送到'authentication.php',如果字段有效,他将从OAuth获取身份验证令牌。学生登录“authentication_students.php” 如何检查令牌是否具有在OAuth中使用授权编辑内容的权限?令

我构建了一个带有身份验证机制的RESTful服务。身份验证使用OAuth协议(来自OAuth.net的库)

我的服务是学校管理。我现在只有教师小组。现在我还想添加学生面板,它几乎是一样的,但我不希望学生能够编辑东西,所以在这种情况下需要授权

当教师想要登录时,他将post请求发送到'authentication.php',如果字段有效,他将从OAuth获取身份验证令牌。学生登录“authentication_students.php”


如何检查令牌是否具有在OAuth中使用授权编辑内容的权限?

令牌需要包含一个类似“canEdit”=true/false的声明。在您的案例中,身份验证是从两个不同的页面完成的,因此填充此声明应该不是一个大问题


让我知道我是否完全离开这里?我遗漏了什么吗?

OAuth 2.0规范故意不包含令牌验证,因此具体的实现取决于您。服务器可以提供自定义端点,在该端点上受保护的资源可以检查令牌的有效性,或者以客户端可以直接解释的格式发布令牌,而无需咨询服务器(例如,请参阅JWS:json-web-tokens with-signatures)

如果您正在使用库,您可以检查它支持哪种方法


颁发令牌时,您应该为教师和学生请求不同的作用域(类似于用户角色),以便您可以根据授予客户端的令牌的作用域允许或拒绝访问受保护的资源。

但我如何检查这一点?如何从令牌中获得canEdit值?OAuth用于委托授权和身份验证,但实际上不用于“纯授权”。这就是XACML的用途。。。