Update userkeys.json via combined server
A tiny Node/Express server to redeem and check product keys. Ready for Render deploy.
POST /api/license/redeem (rate-limited: 10/min/IP)
POST /api/license/redeem
{ "key": "YOUR-KEY" }
{ ok:true }
POST /api/license/check (no rate limit; use once per page load)
POST /api/license/check
used
Admin (requires x-admin-token: <ADMIN_TOKEN> header):
x-admin-token: <ADMIN_TOKEN>
POST /api/admin/add-keys
{ "keys": ["K1","K2"] }
POST /api/admin/revoke
{ "key": "K1" }
POST /api/admin/unrevoke
GET /api/admin/list
render.yaml
ADMIN_TOKEN
The server stores keys in keys.json:
keys.json
{ "keys": [ { "key": "EXAMPLE-KEY-123", "used": false, "revoked": false, "createdAt": "2025-10-25T00:00:00.000Z" } ] }
You can edit this file directly or use the admin endpoints.
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
Vibran License Server
A tiny Node/Express server to redeem and check product keys. Ready for Render deploy.
Endpoints
POST /api/license/redeem(rate-limited: 10/min/IP){ "key": "YOUR-KEY" }{ ok:true }if unused & validPOST /api/license/check(no rate limit; use once per page load){ "key": "YOUR-KEY" }{ ok:true }only if key exists, is markedused, and not revokedAdmin (requires
x-admin-token: <ADMIN_TOKEN>header):POST /api/admin/add-keysbody{ "keys": ["K1","K2"] }POST /api/admin/revokebody{ "key": "K1" }POST /api/admin/unrevokebody{ "key": "K1" }GET /api/admin/listDeploy to Render
render.yamlautomatically; it will generateADMIN_TOKEN.ADMIN_TOKENvalue and use it in your admin requests.keys.json
The server stores keys in
keys.json:You can edit this file directly or use the admin endpoints.