altcha-lib 2.3.0 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/cjs/v2/frameworks/express.js +1 -1
- package/dist/cjs/v2/frameworks/fastify.js +1 -1
- package/dist/cjs/v2/frameworks/h3.js +1 -1
- package/dist/cjs/v2/frameworks/hono.js +1 -1
- package/dist/cjs/v2/frameworks/nestjs.d.ts +3 -1
- package/dist/cjs/v2/frameworks/nestjs.js +4 -4
- package/dist/cjs/v2/frameworks/nextjs.js +1 -1
- package/dist/cjs/v2/frameworks/sveltekit.js +1 -1
- package/dist/esm/v2/frameworks/express.js +1 -1
- package/dist/esm/v2/frameworks/fastify.js +1 -1
- package/dist/esm/v2/frameworks/h3.js +1 -1
- package/dist/esm/v2/frameworks/hono.js +1 -1
- package/dist/esm/v2/frameworks/nestjs.d.ts +3 -1
- package/dist/esm/v2/frameworks/nestjs.js +4 -4
- package/dist/esm/v2/frameworks/nextjs.js +1 -1
- package/dist/esm/v2/frameworks/sveltekit.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -98,6 +98,12 @@ bun run --port 3000 examples/hono-example.ts
|
|
|
98
98
|
deno serve --allow-net --sloppy-imports --port 3000 examples/hono-example.ts
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
+
**Hono + Sentinel remote verification example (Bun):**
|
|
102
|
+
|
|
103
|
+
```sh
|
|
104
|
+
bun run --port 3000 examples/hono-sentinel-example.ts
|
|
105
|
+
```
|
|
106
|
+
|
|
101
107
|
## Breaking Changes (v2)
|
|
102
108
|
|
|
103
109
|
Version 2 introduces a new proof-of-work mechanism and challenge format. See the [PoW documentation](https://playground.altcha.org/#/about) for details.
|
|
@@ -35,7 +35,7 @@ function create(options) {
|
|
|
35
35
|
});
|
|
36
36
|
const verifyHandler = asyncHandler(async (req, res) => {
|
|
37
37
|
const payload = await getPayloadFromRequest(req);
|
|
38
|
-
const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store
|
|
38
|
+
const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
|
|
39
39
|
res.json(result);
|
|
40
40
|
});
|
|
41
41
|
const getPayloadFromRequest = async (req, cookieName) => {
|
|
@@ -54,7 +54,7 @@ function create(options) {
|
|
|
54
54
|
};
|
|
55
55
|
const verifyHandler = async (request, reply) => {
|
|
56
56
|
const payload = await getPayloadFromRequest(request);
|
|
57
|
-
const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store
|
|
57
|
+
const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
|
|
58
58
|
return reply.send(result);
|
|
59
59
|
};
|
|
60
60
|
const middleware = (options = {}) => {
|
|
@@ -35,7 +35,7 @@ function create(options) {
|
|
|
35
35
|
};
|
|
36
36
|
});
|
|
37
37
|
const verifyHandler = (0, h3_1.defineEventHandler)(async (event) => {
|
|
38
|
-
return await (0, shared_js_1.verify)(await getPayloadFromEvent(event), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store
|
|
38
|
+
return await (0, shared_js_1.verify)(await getPayloadFromEvent(event), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
|
|
39
39
|
});
|
|
40
40
|
const getPayloadFromEvent = async (event, cookieName) => {
|
|
41
41
|
let payload = undefined;
|
|
@@ -35,7 +35,7 @@ function create(options) {
|
|
|
35
35
|
});
|
|
36
36
|
};
|
|
37
37
|
const verifyHandler = async (c) => {
|
|
38
|
-
return c.json(await (0, shared_js_1.verify)(await getPayloadFromContext(c), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store
|
|
38
|
+
return c.json(await (0, shared_js_1.verify)(await getPayloadFromContext(c), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store));
|
|
39
39
|
};
|
|
40
40
|
const getPayloadFromContext = async (c, cookieName) => {
|
|
41
41
|
let payload = undefined;
|
|
@@ -41,7 +41,9 @@ export declare class AltchaService {
|
|
|
41
41
|
} | undefined;
|
|
42
42
|
}>;
|
|
43
43
|
getPayloadFromRequest(req: Request, cookieName?: string): string | undefined;
|
|
44
|
-
verify(payload: string | undefined
|
|
44
|
+
verify(payload: string | undefined, options?: {
|
|
45
|
+
allowRemote?: boolean;
|
|
46
|
+
}): Promise<{
|
|
45
47
|
error: string | null;
|
|
46
48
|
payload: import("../types.js").Payload | import("../types.js").ServerSignaturePayload | null;
|
|
47
49
|
verification: import("../types.js").VerifySolutionResult | import("../types.js").VerifyServerResult | null;
|
|
@@ -36,7 +36,7 @@ function createAltchaMiddleware(options = {}) {
|
|
|
36
36
|
}
|
|
37
37
|
async use(req, res, next) {
|
|
38
38
|
const payload = this.altchaService.getPayloadFromRequest(req);
|
|
39
|
-
const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload);
|
|
39
|
+
const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload, { allowRemote: true });
|
|
40
40
|
req.altcha = {
|
|
41
41
|
error,
|
|
42
42
|
payload: resultPayload,
|
|
@@ -96,8 +96,8 @@ let AltchaService = class AltchaService {
|
|
|
96
96
|
}
|
|
97
97
|
return req.body?.[this.fieldName];
|
|
98
98
|
}
|
|
99
|
-
async verify(payload) {
|
|
100
|
-
return (0, shared_js_1.verify)(payload, this.deriveKey, this.hmacSignatureSecret, this.hmacKeySignatureSecret, this.store, this.verifyServerOptions);
|
|
99
|
+
async verify(payload, options = {}) {
|
|
100
|
+
return (0, shared_js_1.verify)(payload, this.deriveKey, this.hmacSignatureSecret, this.hmacKeySignatureSecret, this.store, options.allowRemote ? this.verifyServerOptions : undefined);
|
|
101
101
|
}
|
|
102
102
|
};
|
|
103
103
|
exports.AltchaService = AltchaService;
|
|
@@ -143,7 +143,7 @@ let AltchaMiddleware = class AltchaMiddleware {
|
|
|
143
143
|
}
|
|
144
144
|
async use(req, res, next) {
|
|
145
145
|
const payload = this.altchaService.getPayloadFromRequest(req, this.altchaService.setCookie?.name);
|
|
146
|
-
const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload);
|
|
146
|
+
const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload, { allowRemote: true });
|
|
147
147
|
req.altcha = {
|
|
148
148
|
error,
|
|
149
149
|
payload: resultPayload,
|
|
@@ -48,7 +48,7 @@ function create(options) {
|
|
|
48
48
|
}
|
|
49
49
|
async function verifyHandler(req) {
|
|
50
50
|
const payload = await getPayloadFromRequest(req);
|
|
51
|
-
const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store
|
|
51
|
+
const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
|
|
52
52
|
return Response.json(result);
|
|
53
53
|
}
|
|
54
54
|
async function getPayloadFromRequest(req, cookieName) {
|
|
@@ -49,7 +49,7 @@ function create(options) {
|
|
|
49
49
|
}
|
|
50
50
|
async function verifyHandler(event) {
|
|
51
51
|
const payload = await getPayloadFromEvent(event, fieldName);
|
|
52
|
-
const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store
|
|
52
|
+
const result = await (0, shared_js_1.verify)(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
|
|
53
53
|
return (0, kit_1.json)(result);
|
|
54
54
|
}
|
|
55
55
|
function createHandle(middlewareOptions = {}) {
|
|
@@ -29,7 +29,7 @@ export function create(options) {
|
|
|
29
29
|
});
|
|
30
30
|
const verifyHandler = asyncHandler(async (req, res) => {
|
|
31
31
|
const payload = await getPayloadFromRequest(req);
|
|
32
|
-
const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store
|
|
32
|
+
const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
|
|
33
33
|
res.json(result);
|
|
34
34
|
});
|
|
35
35
|
const getPayloadFromRequest = async (req, cookieName) => {
|
|
@@ -48,7 +48,7 @@ export function create(options) {
|
|
|
48
48
|
};
|
|
49
49
|
const verifyHandler = async (request, reply) => {
|
|
50
50
|
const payload = await getPayloadFromRequest(request);
|
|
51
|
-
const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store
|
|
51
|
+
const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
|
|
52
52
|
return reply.send(result);
|
|
53
53
|
};
|
|
54
54
|
const middleware = (options = {}) => {
|
|
@@ -29,7 +29,7 @@ export function create(options) {
|
|
|
29
29
|
};
|
|
30
30
|
});
|
|
31
31
|
const verifyHandler = defineEventHandler(async (event) => {
|
|
32
|
-
return await verify(await getPayloadFromEvent(event), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store
|
|
32
|
+
return await verify(await getPayloadFromEvent(event), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
|
|
33
33
|
});
|
|
34
34
|
const getPayloadFromEvent = async (event, cookieName) => {
|
|
35
35
|
let payload = undefined;
|
|
@@ -29,7 +29,7 @@ export function create(options) {
|
|
|
29
29
|
});
|
|
30
30
|
};
|
|
31
31
|
const verifyHandler = async (c) => {
|
|
32
|
-
return c.json(await verify(await getPayloadFromContext(c), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store
|
|
32
|
+
return c.json(await verify(await getPayloadFromContext(c), deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store));
|
|
33
33
|
};
|
|
34
34
|
const getPayloadFromContext = async (c, cookieName) => {
|
|
35
35
|
let payload = undefined;
|
|
@@ -41,7 +41,9 @@ export declare class AltchaService {
|
|
|
41
41
|
} | undefined;
|
|
42
42
|
}>;
|
|
43
43
|
getPayloadFromRequest(req: Request, cookieName?: string): string | undefined;
|
|
44
|
-
verify(payload: string | undefined
|
|
44
|
+
verify(payload: string | undefined, options?: {
|
|
45
|
+
allowRemote?: boolean;
|
|
46
|
+
}): Promise<{
|
|
45
47
|
error: string | null;
|
|
46
48
|
payload: import("../types.js").Payload | import("../types.js").ServerSignaturePayload | null;
|
|
47
49
|
verification: import("../types.js").VerifySolutionResult | import("../types.js").VerifyServerResult | null;
|
|
@@ -31,7 +31,7 @@ export function createAltchaMiddleware(options = {}) {
|
|
|
31
31
|
}
|
|
32
32
|
async use(req, res, next) {
|
|
33
33
|
const payload = this.altchaService.getPayloadFromRequest(req);
|
|
34
|
-
const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload);
|
|
34
|
+
const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload, { allowRemote: true });
|
|
35
35
|
req.altcha = {
|
|
36
36
|
error,
|
|
37
37
|
payload: resultPayload,
|
|
@@ -99,8 +99,8 @@ let AltchaService = class AltchaService {
|
|
|
99
99
|
}
|
|
100
100
|
return req.body?.[this.fieldName];
|
|
101
101
|
}
|
|
102
|
-
async verify(payload) {
|
|
103
|
-
return verify(payload, this.deriveKey, this.hmacSignatureSecret, this.hmacKeySignatureSecret, this.store, this.verifyServerOptions);
|
|
102
|
+
async verify(payload, options = {}) {
|
|
103
|
+
return verify(payload, this.deriveKey, this.hmacSignatureSecret, this.hmacKeySignatureSecret, this.store, options.allowRemote ? this.verifyServerOptions : undefined);
|
|
104
104
|
}
|
|
105
105
|
};
|
|
106
106
|
AltchaService = __decorate([
|
|
@@ -148,7 +148,7 @@ let AltchaMiddleware = class AltchaMiddleware {
|
|
|
148
148
|
}
|
|
149
149
|
async use(req, res, next) {
|
|
150
150
|
const payload = this.altchaService.getPayloadFromRequest(req, this.altchaService.setCookie?.name);
|
|
151
|
-
const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload);
|
|
151
|
+
const { error, payload: resultPayload, verification, } = await this.altchaService.verify(payload, { allowRemote: true });
|
|
152
152
|
req.altcha = {
|
|
153
153
|
error,
|
|
154
154
|
payload: resultPayload,
|
|
@@ -42,7 +42,7 @@ export function create(options) {
|
|
|
42
42
|
}
|
|
43
43
|
async function verifyHandler(req) {
|
|
44
44
|
const payload = await getPayloadFromRequest(req);
|
|
45
|
-
const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store
|
|
45
|
+
const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
|
|
46
46
|
return Response.json(result);
|
|
47
47
|
}
|
|
48
48
|
async function getPayloadFromRequest(req, cookieName) {
|
|
@@ -43,7 +43,7 @@ export function create(options) {
|
|
|
43
43
|
}
|
|
44
44
|
async function verifyHandler(event) {
|
|
45
45
|
const payload = await getPayloadFromEvent(event, fieldName);
|
|
46
|
-
const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store
|
|
46
|
+
const result = await verify(payload, deriveKey, hmacSignatureSecret, hmacKeySignatureSecret, store);
|
|
47
47
|
return json(result);
|
|
48
48
|
}
|
|
49
49
|
function createHandle(middlewareOptions = {}) {
|