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在用户每次发出请求时都会获取这些权限。因此,令牌刷新解决了这个问题,因为新令牌将保存所有更新的权限。因此,在配置权限和设置良好的令牌刷新率时要小心。
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在用户每次发出请求时都会获取这些权限。因此,令牌刷新解决了这个问题,因为新令牌将保存所有更新的权限。因此,在配置权限和设置良好的令牌刷新率时要小心。