What you will do
Check access before protected work, including on every app launch. Keep one stable client identity.
Python
Request a fresh check (the SDK may use signed offline grace after a network failure) with the same state directory:
.venv/bin/python license-check.py validate
For normal launch policy, use:
.venv/bin/python license-check.py check
The same file checks both validity and signature before reporting success.
JavaScript / Node.js
Request a fresh check (the SDK may use signed offline grace after a network failure) with the same state directory:
node license-check.mjs validate
For normal launch policy, use:
node license-check.mjs check
The same file checks both validity and signature before reporting success.
PHP
Request a fresh check (the SDK may use signed offline grace after a network failure) with the same state directory:
php license-check.php validate
For normal launch policy, use:
php license-check.php check
The same file checks both validity and signature before reporting success.
C# / .NET
Request a fresh check (the SDK may use signed offline grace after a network failure) with the same state directory:
dotnet run --project Guide.csproj -- validate
For normal launch policy, use:
dotnet run --project Guide.csproj -- check
The same file checks both validity and signature before reporting success.
cURL / other language
Use your REST project's validation method with its stored activation token. Verify the returned signature and bindings before granting access. Raw cURL only tests transport; it does not supply a safe allow/deny decision.
| Result | Your app does |
|---|---|
| Valid, signature verified, required feature enabled | Allow only that feature. |
| Expired, revoked, suspended or cancelled | Deny protected work; explain how to contact the publisher. |
| Invalid signature or inconsistent binding | Deny access; collect a safe request ID for support. |
| Network failure | Follow the verified, unexpired cache policy in Stage 10; never invent permission. |
The sample prints an access decision. Replace that print with your protected action only after adding the feature check described on the SDK page. A valid license does not imply every feature is included.
Expected result
validate prints Sandbox license verified. while the license is valid. Deactivation is a release acknowledgement, never a grant.
If it does not work
Reusing a different state directory makes a different installation. Check the chosen product, environment, clock and current license status before asking the customer to reinstall.
Stage checklist
- Every protected entry point checks access.
- Required feature checks follow verified validity.
Next steps
Continue to Stage 9: Check the signed decision
You are here: Stage 8 of 14.