Check user subscriptions in Woocommerce without have and admin role
Project description
WooCommerce Subscription Checker
================================
+----------------+-----------------------------------------------------------------+
|Current version | 1.0 |
+----------------+-----------------------------------------------------------------+
|Project site | https://github.com/cr0hn/woocommerce-subscription-check |
+----------------+-----------------------------------------------------------------+
|Issues | https://github.com/cr0hn/woocommerce-subscription-check/issues/ |
+----------------+-----------------------------------------------------------------+
|Python versions | 3.6 or above |
+----------------+-----------------------------------------------------------------+
Motivations
===========
Woocommerce doesn't allow to check the user subscriptions (or any other data) from the Wordpress API without being an admin user.
This means that if a regular user want to check their subscriptions, products or something else, it need to be an admin role. And, in non-secure scenarios, this is not good idea, i.e: in the browser through Javascript
What that project does?
=======================
This project exposes non-privileged API and allow to regular users to check their subscription, without the need to have an admin role.
Requirements
============
You must install in your Wordpress the plugins:
- JWT Authentication for WP-API
- WP REST API
- Disable REST API and Require JWT (Recommendable)
**IMPORTANT**
Be careful with JWT plugin. Ensure you follow these steps, in the same order:
1 - Add to wp-config.php
------------------------
Add these lines in your wp-config.php:
define('JWT_AUTH_SECRET_KEY', 'your-top-secrect-key');
define('JWT_AUTH_CORS_ENABLE', true);
**IT'S MORE IMPORTANT** to add these lines just before the definition of AUTH_KEY, SECURE_AUTH_KEY... (https://github.com/Tmeister/wp-api-jwt-auth/issues/59)
2 - Activate the plugin
-----------------------
After you add the data from step 1, then activate the plugin.
Environment vars
================
- LISTEN_ADDR (default: 127.0.0.1)
- LISTEN_PORT (default: 9000)
- API_PREFIX (default: v1)
- LOG_LEVEL (default: 1)
- SENTRY_DSN (default: None)
- REDIS_HOST (default: 127.0.0.1)
- REDIS_PORT (default: 6379)
- REDIS_DB (default: 1)
- SCHEME (default: https)
- DOMAIN: **Mandatory**
- ADMIN_ROLE_USER: **Mandatory**
- ADMIN_ROLE_PASSWORD: **Mandatory**
Using Docker
============
.. code-block:: bash
> docker run -p 9000:9000 --rm cr0hn/woocommerce-subscription-check
Using Pypi
==========
.. code-block:: bash
> python3.6 -m pip install woocommerce_subscriptions_check
Installing with Sentry support:
.. code-block:: bash
> python3.6 -m pip install woocommerce_subscriptions_check[sentry]
End-points
==========
/api/v1/login
--------------
**General**
- Method: POST
- Input data as JSON
- Input value: user / password
**Example request**
.. code-block:: bash
> curl -v -X POST http://127.0.0.1:9000/api/v1/login -d '{"user": "MyUser", "password": "MyPassword"}'
**Example responses**
*Authentication done*
- HTTP STATUS: 200
- Response:
.. code-block:: json
{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI19s82.eyJpc3MiOiJodHRwczpcL1wvd2hvaXNsZWF2aW5nLmNvbSIsImlhdCI6MTUyMzQ0ODQxMSwibmJmIjoxNTIzNDQ4NDExLCJleHAiOjE1MjQwNTMyMTEsImRhdGEiOnsidXNlciI6eyJpZCI6IjIifX19.bu8ChmreEqDt5wwACSB5L_-8V9hHPRzJI-zGHB1Unv4"}
*Authentication fails*
- HTTP STATUS: 403
- Response:
.. code-block:: json
{"message":"Invalid user or password"}
*Invalid Data*
- HTTP STATUS: 400
- Response: "Invalid JSON"
/api/v1/subscriptions
---------------------
**General**
- Method: GET
- Input value: user / password
**Example request**
.. code-block:: bash
> curl -v -X POST http://127.0.0.1:9000/api/v1/subscriptions -H 'Authorization: Bearer TOKEN_FROM_LOGIN'
**Example responses**
*user has subscriptions*
- HTTP STATUS: 200
- Response:
.. code-block:: json
{
"subscriptionName": "micro",
"subscriptionStatus": "active",
"expireDate": "2018-05-10T16:17:31"
}
*user has NOT subscriptions*
- HTTP STATUS: 200
- Response:
.. code-block:: json
{
"subscriptionName": null,
"subscriptionStatus": null,
"expireDate": null
}
*Authentication fails*
- HTTP STATUS: 403
- Response:
.. code-block:: json
{"message":"Invalid token. You must authenticate first"}
*Invalid Data*
- HTTP STATUS: 400
- Response: "Invalid JSON"
================================
+----------------+-----------------------------------------------------------------+
|Current version | 1.0 |
+----------------+-----------------------------------------------------------------+
|Project site | https://github.com/cr0hn/woocommerce-subscription-check |
+----------------+-----------------------------------------------------------------+
|Issues | https://github.com/cr0hn/woocommerce-subscription-check/issues/ |
+----------------+-----------------------------------------------------------------+
|Python versions | 3.6 or above |
+----------------+-----------------------------------------------------------------+
Motivations
===========
Woocommerce doesn't allow to check the user subscriptions (or any other data) from the Wordpress API without being an admin user.
This means that if a regular user want to check their subscriptions, products or something else, it need to be an admin role. And, in non-secure scenarios, this is not good idea, i.e: in the browser through Javascript
What that project does?
=======================
This project exposes non-privileged API and allow to regular users to check their subscription, without the need to have an admin role.
Requirements
============
You must install in your Wordpress the plugins:
- JWT Authentication for WP-API
- WP REST API
- Disable REST API and Require JWT (Recommendable)
**IMPORTANT**
Be careful with JWT plugin. Ensure you follow these steps, in the same order:
1 - Add to wp-config.php
------------------------
Add these lines in your wp-config.php:
define('JWT_AUTH_SECRET_KEY', 'your-top-secrect-key');
define('JWT_AUTH_CORS_ENABLE', true);
**IT'S MORE IMPORTANT** to add these lines just before the definition of AUTH_KEY, SECURE_AUTH_KEY... (https://github.com/Tmeister/wp-api-jwt-auth/issues/59)
2 - Activate the plugin
-----------------------
After you add the data from step 1, then activate the plugin.
Environment vars
================
- LISTEN_ADDR (default: 127.0.0.1)
- LISTEN_PORT (default: 9000)
- API_PREFIX (default: v1)
- LOG_LEVEL (default: 1)
- SENTRY_DSN (default: None)
- REDIS_HOST (default: 127.0.0.1)
- REDIS_PORT (default: 6379)
- REDIS_DB (default: 1)
- SCHEME (default: https)
- DOMAIN: **Mandatory**
- ADMIN_ROLE_USER: **Mandatory**
- ADMIN_ROLE_PASSWORD: **Mandatory**
Using Docker
============
.. code-block:: bash
> docker run -p 9000:9000 --rm cr0hn/woocommerce-subscription-check
Using Pypi
==========
.. code-block:: bash
> python3.6 -m pip install woocommerce_subscriptions_check
Installing with Sentry support:
.. code-block:: bash
> python3.6 -m pip install woocommerce_subscriptions_check[sentry]
End-points
==========
/api/v1/login
--------------
**General**
- Method: POST
- Input data as JSON
- Input value: user / password
**Example request**
.. code-block:: bash
> curl -v -X POST http://127.0.0.1:9000/api/v1/login -d '{"user": "MyUser", "password": "MyPassword"}'
**Example responses**
*Authentication done*
- HTTP STATUS: 200
- Response:
.. code-block:: json
{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI19s82.eyJpc3MiOiJodHRwczpcL1wvd2hvaXNsZWF2aW5nLmNvbSIsImlhdCI6MTUyMzQ0ODQxMSwibmJmIjoxNTIzNDQ4NDExLCJleHAiOjE1MjQwNTMyMTEsImRhdGEiOnsidXNlciI6eyJpZCI6IjIifX19.bu8ChmreEqDt5wwACSB5L_-8V9hHPRzJI-zGHB1Unv4"}
*Authentication fails*
- HTTP STATUS: 403
- Response:
.. code-block:: json
{"message":"Invalid user or password"}
*Invalid Data*
- HTTP STATUS: 400
- Response: "Invalid JSON"
/api/v1/subscriptions
---------------------
**General**
- Method: GET
- Input value: user / password
**Example request**
.. code-block:: bash
> curl -v -X POST http://127.0.0.1:9000/api/v1/subscriptions -H 'Authorization: Bearer TOKEN_FROM_LOGIN'
**Example responses**
*user has subscriptions*
- HTTP STATUS: 200
- Response:
.. code-block:: json
{
"subscriptionName": "micro",
"subscriptionStatus": "active",
"expireDate": "2018-05-10T16:17:31"
}
*user has NOT subscriptions*
- HTTP STATUS: 200
- Response:
.. code-block:: json
{
"subscriptionName": null,
"subscriptionStatus": null,
"expireDate": null
}
*Authentication fails*
- HTTP STATUS: 403
- Response:
.. code-block:: json
{"message":"Invalid token. You must authenticate first"}
*Invalid Data*
- HTTP STATUS: 400
- Response: "Invalid JSON"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for woocommerce_subscriptions_check-1.0.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e2bf0f7e31be7f508d6ef9237018d3025299768c16fd7cc4d6b00e9ff70da34 |
|
MD5 | 3d20e9069ea3a7b034123c1063a8e6b2 |
|
BLAKE2b-256 | 37fee288b91ac3db46af48ac8f8001f4e6441e9f5a6393193ebd0cfabad7d1cd |