我使用的是drf和oauth toolkit,默认使用ISAuthenticatedTokenHasscope权限。我有一个包含作用域的视图
required_scopes = ['mod', 'admin']
当用户登录到应用程序时,他拥有定义其权限范围的特殊组。因此,当主持人登录到应用程序时,他得到了mod
范围。当他调用我的视图时,他得到403,因为AccessToken模型中的allow_scopes
返回False。这是因为resource_scopes
是['mod','admin'],提供的作用域是'mod'。当方法allow_scopes
检查resource_scopes.issubset(provided_scopes)
时,她返回False,这在我的情况下不是故意的
在不覆盖AccessToken模型中的allow_作用域的情况下,是否有其他选项来定义此视图需要作用域mod
或作用域admin
我想我找到了一个方法让它发挥作用。
oauth2_provider
没有提供任何函数来实现这一点。因此,我所做的是定义自己的自定义权限,它类似于TokenHasScope
。因此,创建一个名为permissions.py
的文件并粘贴代码然后在视图中,导入权限并进行相应设置
在上面的自定义
TokenHasAtLeastOneScope
中,代码类似于TokenHasScope
。唯一改变的是循环遍历
required_scopes
列表中的项,如果找到有效范围,则返回True相关问题 更多 >
编程相关推荐