Skip to main content

This module provides a utility function to verify the authenticity of data received from Shopify webhooks. It uses HMAC (Hash-based Message Authentication Code) with SHA-256 hashing to ensure that the data has not been tampered with in transit.

Project description

Shopify Webhook Verification

This module provides a utility function to verify the authenticity of data received from Shopify webhooks. It uses HMAC (Hash-based Message Authentication Code) with SHA-256 hashing to ensure that the data has not been tampered with in transit.

Function Description

verify is a function that computes an HMAC for the given data and compares it with the HMAC provided in the Shopify webhook header. It's designed to be a robust and secure way to validate the integrity and authenticity of the data received from Shopify.

Arguments

  • data_bytes (bytes): The raw data for which the HMAC is being verified.
  • shared_secret (Union[bytes, bytearray]): The secret key used for HMAC generation.
  • hmac_sha256 (AnyStr): The base64 encoded HMAC string received in the Shopify webhook header.

Returns

bool: Returns True if the HMAC matches, False otherwise.

Installation

No specific installation steps required, just ensure you have Python 3.x installed.

Usage

Here's a basic usage example:

# The raw data received from Shopify
raw_data_as_bytes = request.data  # Replace with actual request data

# The HMAC header received from Shopify
hmac_sha256 = request.headers.get("X-Shopify-Hmac-Sha256")  # Replace with actual header

# The secret key provided by Shopify
shared_secret = "your_shared_secret_here".encode("utf-8")

# Perform verification
verified = verify(
    data_bytes=raw_data_as_bytes,
    hmac_sha256=hmac_sha256,
    shared_secret=shared_secret,
)

if verified:
    print("Verification successful!")
else:
    print("Verification failed!")

Logging

The function uses Python's built-in logging to report its status and errors. You can configure the logging level as per your requirement.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

verifyshopify-0.1.4.tar.gz (2.4 kB view details)

Uploaded Source

Built Distribution

verifyshopify-0.1.4-py3-none-any.whl (3.1 kB view details)

Uploaded Python 3

File details

Details for the file verifyshopify-0.1.4.tar.gz.

File metadata

  • Download URL: verifyshopify-0.1.4.tar.gz
  • Upload date:
  • Size: 2.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.9.6 Darwin/23.1.0

File hashes

Hashes for verifyshopify-0.1.4.tar.gz
Algorithm Hash digest
SHA256 502ccfa7029619a00bcadd2531894116925aca687a9607392d20086e51b6e870
MD5 86fc767125c854be3e5de1bfc10a954a
BLAKE2b-256 b2a9ad8e81bcddfd9f8cb964be8c0605cb06ce127ed2d986d78837d7a05f5960

See more details on using hashes here.

File details

Details for the file verifyshopify-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: verifyshopify-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 3.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.9.6 Darwin/23.1.0

File hashes

Hashes for verifyshopify-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 fb1858cab3b866c8d5ce88e938970f6bed807fd551d509c6e1108c8d597044d4
MD5 639af98589a017ed7b1980a06549189f
BLAKE2b-256 aac402d98e9b21b9cbdcdafcc311544d76d8ad3a44473a3e31b2d2912f0482a0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page