Shup API许可

shuup-api-permission的Python项目详细描述


#shuup api permissions

shuup模块使用jwt增加了对rest api访问的更多控制。


使用此模块,所有api请求都应该具有有效的jwt,即使用户是匿名的。唯一的例外是获取jwt的端点。只有知道api密钥和密钥的用户才能提交请求。

每个api密钥可以分别为匿名用户和用户组(shuup中称为权限组)配置权限。

设置:

1.将“shuup-api”权限添加到“installed-apps”。
2.将“shuup-api-permission.middleware.shuupapippermissionmiddleware”添加到“middleware-classes”中,顺序无关紧要。
3.将“default_authentication_classes”更改为仅包含“shuup_api_permission.authentication.apitokenauthentication”。如果愿意,可以添加其他身份验证类。
4.更改为“默认权限类”为:
``py
‘默认权限类’:(
‘shuup-api-permission.permissions.apiaccesspermission’,
‘shuup-api-permission.permissions.apiascopepermission’
``
5。在“jwt-auth `:
``py
jwt-auth={
'jwt-payload-payload-handler':shhuup-api-apu permission.utils.jwt-payload-payload-handler'
>
```








创建访问shuup api的api密钥。

输入shuup admin并转到到菜单**设置**>;**API访问**(在其他设置子菜单中)。

创建新的API访问。提供一个类似*移动应用程序*的名称。在这里,您可以为每个api端点和操作的多个用户配置权限:

![创建API访问](docs/admin1.jpg)

禁用后,API密钥将不再工作,这意味着使用该密钥的所有请求都将引发错误。

您还可以在**API权限组**选项中为用户组添加权限。您应该首先为一组用户组创建权限方案。您可以选择现有的或创建一个全新的权利现场“****”窗口小部件按钮。要管理这些方案,您始终可以访问菜单**设置**>;**API权限**。

[创建API权限组](docs/admin2.jpg)

![创建API权限组](docs/admin3.jpg)

默认端点是`/api/auth/`(考虑到您的api url前缀是`api`)。您可以更改此url(查看我们的[设置](shup-api-api-permission/settings.py))。



>
响应将包含一个jwt,该jwt应在*authorization*头中的所有后续api请求中使用。

`````
get/api/shup/attributes/authorization:“jwt my token goes here”
````

它们不会对那些在更改前获得令牌的用户生效。这是一个设计决定。在jwt中保留用户权限是最快的,jwt在用户每次发出请求时都会获取这些权限。因此,令牌刷新解决了这个问题,因为新令牌将保存所有更新的权限。因此,在配置权限和设置良好的令牌刷新率时要小心。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java IntelliJ找不到依赖项选项卡   java向字符串数组string[]添加元素并在Junit中测试结果   如何在eclipse中获取活动java项目的名称   如何使用java在mysql中插入时间   java ArrayList更新了插入一行,但Jtable仍然没有刷新   如何在JavaSwing中命名坐标(点)   java Matcher/模式不打印   java错误地设置了arraylist   使用UsernamePasswordCredential提供程序的java列表Azure AD   java在HTTP请求中设置UTC时间   未加载事件:jquery完整日历Java集成   java Maven插件依赖项无法从内部repo解析依赖项   Maven更新重置Java版本   java如何向中添加图片。带有Apache POI XWPF的docx,但不指定其大小   Java最大函数递归