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将一个节点拖到另一个不运行JavaFX的节点中   java如何在spring boot中创建完全自定义的查询   java Arraylist和ArrayListBlockingQueue之间的区别是什么?   java Weblogic会中断长时间运行的线程吗   java如何调用displayAd()方法?   使用数组在两个组之间进行java IPL匹配   java如何在Eclipse中的org下创建测试套件。朱尼特   java获取屏幕上任意点的鼠标坐标   正则表达式需要java正则表达式方面的帮助   如何使用Java获取Ram大小和硬盘大小?   java如何将所需长度设置为数组中的整数?   安卓应用程序启动前的java程序已终止   swing设置要在Java代码中打印的页边距   迭代期间java故障安全迭代器的删除   java如何在main中调用方法,以便它们在同一行上输出?   编译Java:尝试播放mp3文件时出错   java如何使用Spring数据Rest在POST调用中保存嵌入对象   java JAXWS如何在端点外部注入SecurityContext