Php 如何在iAuthenticate类(Restler)中获取参数

Php 如何在iAuthenticate类(Restler)中获取参数,php,rest,restler,Php,Rest,Restler,对于我的API,我有一个项目和用户数据库。API调用遵循 发布(获取、删除等) 当用户调用API时,我希望能够获取项目的id,以确保用户实际拥有修改项目的权限。我可以毫无问题地获取用户ID(从OAuth2令牌中提取),但是在本例中,获取项目ID的最佳方法是什么?我更愿意在iAuthenticate类中的_isAllowed()函数中执行此操作,以保持代码干净。这可能吗?尽管可能,但基于auth类级别的资源拒绝用户会使过程复杂化 我总是喜欢在api方法级别这样做,一旦我们发现请求的资源不属于用户,

对于我的API,我有一个项目和用户数据库。API调用遵循

发布(获取、删除等)


当用户调用API时,我希望能够获取项目的id,以确保用户实际拥有修改项目的权限。我可以毫无问题地获取用户ID(从OAuth2令牌中提取),但是在本例中,获取项目ID的最佳方法是什么?我更愿意在iAuthenticate类中的_isAllowed()函数中执行此操作,以保持代码干净。这可能吗?

尽管可能,但基于auth类级别的资源拒绝用户会使过程复杂化


我总是喜欢在api方法级别这样做,一旦我们发现请求的资源不属于用户,我们仍然可以从api方法中抛出
401 Unauthorized
,这是有意义的。那么,您是否建议手动抛出401异常?将与访问令牌关联的用户id传递给API方法的最佳方式是什么?在_isAllowed()函数中做起来很简单;有没有一个简单的方法来传递它?是的,401手册很好。auth类应该将用户id存储到使用IIIdentificyUser接口的用户类。然后,您可以从用户类的任何位置(包括api方法)访问唯一标识符。请注意,
iIdentityUser
是从RC5开始的
iUser
的新名称。您可以简单地使用
Luracast\Restler\User
或创建自己的类来实现该接口。如果使用自己的,请确保更新默认值:$userIdentifierClass