在没有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 Tomcat请求因超时而取消   如何在java主程序的后台实现事件侦听器?   java使用正则表达式进行拆分,但将第一个数组元素作为空白   java从Documentum查询中读取自定义双精度值   java Android:位图内存不足错误   java Lucene复合查询搜索   java如何修复Struts DispatchAction上的StackOverflower错误?   用于从字符串中捕获数字的java正则表达式   java如何禁用来自外部jar的类或包的记录器   java“调用init方法失败;嵌套异常为javax.persistence.PersistenceException”是什么意思?   异步任务中的java Volatile和Synchronized   互联网上的java UDP。它是如何工作的?   java如何禁用“RMI TCP连接”日志记录?   安卓在Java中除以两个整数会得到0还是100?   spring boot如何在JAVA中的3个实体之间使用乐观锁定   matlab如何在Java中创建空格,轻松运行程序,并查看不同代码段的不同颜色以使其可读?   java无法解析类com。云蜂。哈德逊。插件。文件夹文件夹   java转换时区指定为GMT的日期字符串