在没有have和admin角色的woocommerce中检查用户订阅

woocommerce-subscriptions-check的Python项目详细描述


Woomerce订阅检查器

Current version1.0
Project sitehttps://github.com/cr0hn/woocommerce-subscription-check
Issueshttps://github.com/cr0hn/woocommerce-subscription-check/issues/
Python versions3.6 or above

动机

woomerce不允许在没有管理员身份的情况下从wordpress api检查用户订阅(或任何其他数据)。

这意味着,如果普通用户想要检查他们的订阅、产品或其他内容,那么它必须是管理员角色。而且,在不安全的情况下,这不是一个好主意,即:在浏览器中通过javascript

那个项目是做什么的?

此项目公开非特权API,并允许普通用户检查其订阅,而无需具有管理员角色。

要求

必须在wordpress中安装插件:

  • wp-api的jwt身份验证
  • wp rest api
  • 禁用rest api并要求jwt(推荐)

重要

小心jwt插件。确保按照相同的顺序执行这些步骤:

1-添加到wp config.php

在wp-config.php中添加以下行:

define('jwt_auth_secret_key','your top secrect key'); define('jwt_auth_cors_enable',true);

在auth密钥、secure auth密钥的定义之前添加这些行是更重要的…(https://github.com/Tmeister/wp-api-jwt-auth/issues/59

2-激活插件

添加步骤1中的数据后,激活插件。

环境变量

  • 收听地址(默认:127.0.0.1)
  • 侦听端口(默认值:9000)
  • API_前缀(默认:v1)
  • 日志级别(默认值:1)
  • 哨兵DSN(默认:无)
  • redis_主机(默认:127.0.0.1)
  • redis_端口(默认值:6379)
  • redis_db(默认值:1)
  • 方案(默认:https)
  • 域:强制
  • 管理员角色用户:必需
  • 管理员角色密码:必需

使用Docker

> docker run -p 9000:9000 --rm cr0hn/woocommerce-subscription-check

使用pypi

> python3.6 -m pip install woocommerce_subscriptions_check

使用岗哨支架安装:

> python3.6 -m pip install woocommerce_subscriptions_check[sentry]

终点

/api/v1/登录

常规

  • 方法:post
  • 以json形式输入数据
  • 输入值:用户/密码

示例请求

> curl -v -X POST http://127.0.0.1:9000/api/v1/login -d '{"user": "MyUser", "password": "MyPassword"}'

示例响应

验证完成

  • http状态:200
  • 回复:
{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI19s82.eyJpc3MiOiJodHRwczpcL1wvd2hvaXNsZWF2aW5nLmNvbSIsImlhdCI6MTUyMzQ0ODQxMSwibmJmIjoxNTIzNDQ4NDExLCJleHAiOjE1MjQwNTMyMTEsImRhdGEiOnsidXNlciI6eyJpZCI6IjIifX19.bu8ChmreEqDt5wwACSB5L_-8V9hHPRzJI-zGHB1Unv4"}

身份验证失败

  • http状态:403
  • 回复:
{"message":"Invalid user or password"}

无效数据

  • http状态:400
  • 响应:“无效的json”

/API/v1/订阅

常规

  • 方法:get
  • 输入值:用户/密码

示例请求

> curl -v -X POST http://127.0.0.1:9000/api/v1/subscriptions -H 'Authorization: Bearer TOKEN_FROM_LOGIN'

示例响应

user有订阅

  • http状态:200
  • 回复:
{"subscriptionName":"micro","subscriptionStatus":"active","expireDate":"2018-05-10T16:17:31"}

用户没有订阅

  • http状态:200
  • 回复:
{"subscriptionName":null,"subscriptionStatus":null,"expireDate":null}

身份验证失败

  • http状态:403
  • 回复:
{"message":"Invalid token. You must authenticate first"}

无效数据

  • http状态:400
  • 响应:“无效的json”

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

推荐PyPI第三方库


热门话题
java异步任务必须是抽象的   java从ArrayList更改对象中的变量<Object>   JAVAlang.NoClassDefFoundError与ANT生成的JAR   java如何创建卡片组构造函数   java JPA EclipseLink和@TableGenerator。为什么事务回滚后分配给id的值不为空?   java是一种简单的混合JTextField/JPasswordField的方法吗?   javajaxb(JAXWS):值为null时为空标记   关于ListActivity、游标和SQL数据更新的java问题   JFrame的java无响应KeyListener   堆栈Java类型转换。对象指向自定义类的实例   eclipse在我的java项目中使用其他java文件   Java字符串引用与new不同,与new相同   java游戏介绍页。使用JFrame   在java中设置代理   java轻松打印阿拉伯数字的方法   Java“优化”:低级类中的if控件   java在页面加载之前是否可以填充JSF视图?   升级到spring boot v2后java应用程序未启动。5.2   Spring模型类中的java静态工厂方法   java Lucene令牌流异常