@prosopo/server 2.6.3 → 2.9.7
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/CHANGELOG.md +116 -0
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/server.cjs +38 -13
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +4 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +34 -12
- package/dist/server.js.map +1 -1
- package/package.json +17 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,121 @@
|
|
|
1
1
|
# @prosopo/server
|
|
2
2
|
|
|
3
|
+
## 2.9.7
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
- @prosopo/api@3.0.5
|
|
7
|
+
- @prosopo/load-balancer@2.6.13
|
|
8
|
+
|
|
9
|
+
## 2.9.6
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- @prosopo/api@3.0.4
|
|
13
|
+
- @prosopo/load-balancer@2.6.12
|
|
14
|
+
|
|
15
|
+
## 2.9.5
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- Updated dependencies [f682f0c]
|
|
19
|
+
- @prosopo/types@3.0.2
|
|
20
|
+
- @prosopo/common@3.0.2
|
|
21
|
+
- @prosopo/api@3.0.3
|
|
22
|
+
- @prosopo/keyring@2.8.5
|
|
23
|
+
- @prosopo/load-balancer@2.6.11
|
|
24
|
+
|
|
25
|
+
## 2.9.4
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- @prosopo/common@3.0.1
|
|
29
|
+
- @prosopo/types@3.0.1
|
|
30
|
+
- @prosopo/keyring@2.8.4
|
|
31
|
+
- @prosopo/load-balancer@2.6.10
|
|
32
|
+
- @prosopo/api@3.0.2
|
|
33
|
+
|
|
34
|
+
## 2.9.3
|
|
35
|
+
### Patch Changes
|
|
36
|
+
|
|
37
|
+
- @prosopo/api@3.0.1
|
|
38
|
+
|
|
39
|
+
## 2.9.2
|
|
40
|
+
### Patch Changes
|
|
41
|
+
|
|
42
|
+
- Updated dependencies [64b5bcd]
|
|
43
|
+
- @prosopo/common@3.0.0
|
|
44
|
+
- @prosopo/types@3.0.0
|
|
45
|
+
- @prosopo/api@3.0.0
|
|
46
|
+
- @prosopo/keyring@2.8.3
|
|
47
|
+
- @prosopo/load-balancer@2.6.9
|
|
48
|
+
|
|
49
|
+
## 2.9.1
|
|
50
|
+
### Patch Changes
|
|
51
|
+
|
|
52
|
+
- Updated dependencies [aee3efe]
|
|
53
|
+
- @prosopo/types@2.10.0
|
|
54
|
+
- @prosopo/api@2.7.2
|
|
55
|
+
- @prosopo/keyring@2.8.2
|
|
56
|
+
- @prosopo/load-balancer@2.6.8
|
|
57
|
+
|
|
58
|
+
## 2.9.0
|
|
59
|
+
### Minor Changes
|
|
60
|
+
|
|
61
|
+
- d5f2e95: Fix ip checking logic
|
|
62
|
+
|
|
63
|
+
## 2.8.1
|
|
64
|
+
### Patch Changes
|
|
65
|
+
|
|
66
|
+
- 86c22b8: structured logging
|
|
67
|
+
- Updated dependencies [86c22b8]
|
|
68
|
+
- @prosopo/load-balancer@2.6.7
|
|
69
|
+
- @prosopo/keyring@2.8.1
|
|
70
|
+
- @prosopo/common@2.7.2
|
|
71
|
+
- @prosopo/types@2.9.1
|
|
72
|
+
- @prosopo/api@2.7.1
|
|
73
|
+
|
|
74
|
+
## 2.8.0
|
|
75
|
+
### Minor Changes
|
|
76
|
+
|
|
77
|
+
- d6de900: ip pass through
|
|
78
|
+
|
|
79
|
+
### Patch Changes
|
|
80
|
+
|
|
81
|
+
- Updated dependencies [d6de900]
|
|
82
|
+
- @prosopo/api@2.7.0
|
|
83
|
+
|
|
84
|
+
## 2.7.1
|
|
85
|
+
### Patch Changes
|
|
86
|
+
|
|
87
|
+
- Updated dependencies [30bb383]
|
|
88
|
+
- @prosopo/keyring@2.8.0
|
|
89
|
+
- @prosopo/types@2.9.0
|
|
90
|
+
- @prosopo/common@2.7.1
|
|
91
|
+
- @prosopo/api@2.6.6
|
|
92
|
+
- @prosopo/load-balancer@2.6.6
|
|
93
|
+
|
|
94
|
+
## 2.7.0
|
|
95
|
+
### Minor Changes
|
|
96
|
+
|
|
97
|
+
- 8f0644a: Taking required functions from polkadot/keyring and polkadot/util-crypto in-house and removing WASM dependencies. Adding @scure JS-based sr25519 function instead.
|
|
98
|
+
|
|
99
|
+
### Patch Changes
|
|
100
|
+
|
|
101
|
+
- Updated dependencies [8f0644a]
|
|
102
|
+
- @prosopo/keyring@2.7.0
|
|
103
|
+
- @prosopo/common@2.7.0
|
|
104
|
+
- @prosopo/types@2.8.0
|
|
105
|
+
- @prosopo/load-balancer@2.6.5
|
|
106
|
+
- @prosopo/api@2.6.5
|
|
107
|
+
|
|
108
|
+
## 2.6.4
|
|
109
|
+
|
|
110
|
+
### Patch Changes
|
|
111
|
+
|
|
112
|
+
- Updated dependencies [04cc7ee]
|
|
113
|
+
- @prosopo/common@2.6.1
|
|
114
|
+
- @prosopo/keyring@2.6.4
|
|
115
|
+
- @prosopo/load-balancer@2.6.4
|
|
116
|
+
- @prosopo/types@2.7.1
|
|
117
|
+
- @prosopo/api@2.6.4
|
|
118
|
+
|
|
3
119
|
## 2.6.3
|
|
4
120
|
|
|
5
121
|
### Patch Changes
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -4,7 +4,7 @@ const server = require("./server.cjs");
|
|
|
4
4
|
const config = require("./config.cjs");
|
|
5
5
|
const keyring = require("@prosopo/keyring");
|
|
6
6
|
const PublicProsopoServer = async (config2) => {
|
|
7
|
-
const pair =
|
|
7
|
+
const pair = keyring.getPair(void 0, config2.account.address);
|
|
8
8
|
return new server.ProsopoServer(config2, pair);
|
|
9
9
|
};
|
|
10
10
|
exports.ProsopoServer = server.ProsopoServer;
|
package/dist/cjs/server.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const keyring = require("@polkadot/keyring");
|
|
4
|
-
const util = require("@polkadot/util");
|
|
5
3
|
const api = require("@prosopo/api");
|
|
6
4
|
const common = require("@prosopo/common");
|
|
5
|
+
const keyring = require("@prosopo/keyring");
|
|
7
6
|
const loadBalancer = require("@prosopo/load-balancer");
|
|
8
7
|
const types = require("@prosopo/types");
|
|
8
|
+
const util = require("@prosopo/util");
|
|
9
9
|
const i18n = require("i18next");
|
|
10
10
|
class ProsopoServer {
|
|
11
11
|
constructor(config, pair) {
|
|
@@ -34,8 +34,11 @@ class ProsopoServer {
|
|
|
34
34
|
* @param user
|
|
35
35
|
* @param challenge
|
|
36
36
|
*/
|
|
37
|
-
async verifyProvider(token, timeouts, providerUrl, timestamp, user, challenge) {
|
|
38
|
-
this.logger.info(
|
|
37
|
+
async verifyProvider(token, timeouts, providerUrl, timestamp, user, challenge, ip) {
|
|
38
|
+
this.logger.info(() => ({
|
|
39
|
+
data: { providerUrl },
|
|
40
|
+
msg: "Verifying with provider"
|
|
41
|
+
}));
|
|
39
42
|
const dappUserSignature = this.pair?.sign(timestamp.toString());
|
|
40
43
|
if (!dappUserSignature) {
|
|
41
44
|
throw new common.ProsopoContractError("CAPTCHA.INVALID_TIMESTAMP", {
|
|
@@ -48,7 +51,10 @@ class ProsopoServer {
|
|
|
48
51
|
const powTimeout = this.config.timeouts.pow.cachedTimeout;
|
|
49
52
|
const recent2 = timestamp ? Date.now() - timestamp < powTimeout : false;
|
|
50
53
|
if (!recent2) {
|
|
51
|
-
this.logger.error(
|
|
54
|
+
this.logger.error(() => ({
|
|
55
|
+
data: { timestamp },
|
|
56
|
+
msg: "PoW captcha is not recent"
|
|
57
|
+
}));
|
|
52
58
|
return {
|
|
53
59
|
verified: false,
|
|
54
60
|
status: i18n.t("API.USER_NOT_VERIFIED_TIME_EXPIRED")
|
|
@@ -58,13 +64,17 @@ class ProsopoServer {
|
|
|
58
64
|
token,
|
|
59
65
|
signatureHex,
|
|
60
66
|
timeouts.pow.cachedTimeout,
|
|
61
|
-
user
|
|
67
|
+
user,
|
|
68
|
+
ip
|
|
62
69
|
);
|
|
63
70
|
}
|
|
64
71
|
const imageTimeout = this.config.timeouts.image.cachedTimeout;
|
|
65
72
|
const recent = timestamp ? Date.now() - timestamp < imageTimeout : false;
|
|
66
73
|
if (!recent) {
|
|
67
|
-
this.logger.error(
|
|
74
|
+
this.logger.error(() => ({
|
|
75
|
+
data: { timestamp },
|
|
76
|
+
msg: "Image captcha is not recent"
|
|
77
|
+
}));
|
|
68
78
|
return {
|
|
69
79
|
verified: false,
|
|
70
80
|
status: i18n.t("API.USER_NOT_VERIFIED_TIME_EXPIRED")
|
|
@@ -74,7 +84,8 @@ class ProsopoServer {
|
|
|
74
84
|
token,
|
|
75
85
|
signatureHex,
|
|
76
86
|
user,
|
|
77
|
-
timeouts.image.cachedTimeout
|
|
87
|
+
timeouts.image.cachedTimeout,
|
|
88
|
+
ip
|
|
78
89
|
);
|
|
79
90
|
}
|
|
80
91
|
/**
|
|
@@ -82,29 +93,43 @@ class ProsopoServer {
|
|
|
82
93
|
* @returns
|
|
83
94
|
* @param token
|
|
84
95
|
*/
|
|
85
|
-
async isVerified(token) {
|
|
96
|
+
async isVerified(token, ip) {
|
|
86
97
|
try {
|
|
87
98
|
const payload = types.decodeProcaptchaOutput(token);
|
|
88
99
|
const { providerUrl, challenge, timestamp, user } = types.ProcaptchaOutputSchema.parse(payload);
|
|
89
100
|
const providers = await loadBalancer.loadBalancer(this.config.defaultEnvironment);
|
|
90
101
|
const provider = providers.find((p) => p.url === providerUrl);
|
|
91
102
|
if (!provider) {
|
|
92
|
-
this.logger.error(
|
|
103
|
+
this.logger.error(() => ({
|
|
104
|
+
data: { providerUrl },
|
|
105
|
+
msg: "Provider not found"
|
|
106
|
+
}));
|
|
93
107
|
return {
|
|
94
108
|
verified: false,
|
|
95
109
|
status: i18n.t("API.USER_NOT_VERIFIED")
|
|
96
110
|
};
|
|
97
111
|
}
|
|
98
|
-
|
|
112
|
+
const verificationResponse = await this.verifyProvider(
|
|
99
113
|
token,
|
|
100
114
|
this.config.timeouts,
|
|
101
115
|
provider.url,
|
|
102
116
|
Number(timestamp),
|
|
103
117
|
user,
|
|
104
|
-
challenge
|
|
118
|
+
challenge,
|
|
119
|
+
ip
|
|
105
120
|
);
|
|
121
|
+
this.logger.info(() => ({
|
|
122
|
+
data: {
|
|
123
|
+
verificationResponse,
|
|
124
|
+
providerUrl,
|
|
125
|
+
user,
|
|
126
|
+
challenge,
|
|
127
|
+
siteKey: this.pair?.address
|
|
128
|
+
}
|
|
129
|
+
}));
|
|
130
|
+
return verificationResponse;
|
|
106
131
|
} catch (err) {
|
|
107
|
-
this.logger.error({ err, token });
|
|
132
|
+
this.logger.error(() => ({ err, data: { token } }));
|
|
108
133
|
throw new common.ProsopoApiError("API.BAD_REQUEST", {
|
|
109
134
|
context: { code: 500, token }
|
|
110
135
|
});
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ProsopoServer } from "./server.js";
|
|
2
2
|
export { ProsopoServer } from "./server.js";
|
|
3
3
|
export { getServerConfig, getServerUrl } from "./config.js";
|
|
4
|
-
import {
|
|
4
|
+
import { getPair } from "@prosopo/keyring";
|
|
5
5
|
export const PublicProsopoServer = async (config) => {
|
|
6
|
-
const pair =
|
|
6
|
+
const pair = getPair(undefined, config.account.address);
|
|
7
7
|
return new ProsopoServer(config, pair);
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACvC,MAAiC,EAChC,EAAE;IAEH,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Keyring } from "@polkadot/keyring";
|
|
2
|
-
import type { KeyringPair } from "@polkadot/keyring/types";
|
|
3
1
|
import { ProviderApi } from "@prosopo/api";
|
|
4
2
|
import { type Logger } from "@prosopo/common";
|
|
3
|
+
import { Keyring } from "@prosopo/keyring";
|
|
4
|
+
import type { KeyringPair } from "@prosopo/types";
|
|
5
5
|
import { type CaptchaTimeoutOutput, type ProcaptchaToken, type ProsopoServerConfigOutput, type VerificationResponse } from "@prosopo/types";
|
|
6
6
|
export declare class ProsopoServer {
|
|
7
7
|
config: ProsopoServerConfigOutput;
|
|
@@ -12,7 +12,7 @@ export declare class ProsopoServer {
|
|
|
12
12
|
pair: KeyringPair | undefined;
|
|
13
13
|
constructor(config: ProsopoServerConfigOutput, pair?: KeyringPair);
|
|
14
14
|
getProviderApi(providerUrl: string): ProviderApi;
|
|
15
|
-
verifyProvider(token: string, timeouts: CaptchaTimeoutOutput, providerUrl: string, timestamp: number, user: string, challenge?: string): Promise<VerificationResponse>;
|
|
16
|
-
isVerified(token: ProcaptchaToken): Promise<VerificationResponse>;
|
|
15
|
+
verifyProvider(token: string, timeouts: CaptchaTimeoutOutput, providerUrl: string, timestamp: number, user: string, challenge?: string, ip?: string): Promise<VerificationResponse>;
|
|
16
|
+
isVerified(token: ProcaptchaToken, ip?: string): Promise<VerificationResponse>;
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAEN,KAAK,MAAM,EAIX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACN,KAAK,oBAAoB,EAEzB,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EAEzB,MAAM,gBAAgB,CAAC;AAIxB,qBAAa,aAAa;IACzB,MAAM,EAAE,yBAAyB,CAAC;IAClC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;gBAElB,MAAM,EAAE,yBAAyB,EAAE,IAAI,CAAC,EAAE,WAAW;IAcjE,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW;IAcnC,cAAc,CAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,oBAAoB,EAC9B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,MAAM,GACT,OAAO,CAAC,oBAAoB,CAAC;IA6DnB,UAAU,CACtB,KAAK,EAAE,eAAe,EACtB,EAAE,CAAC,EAAE,MAAM,GACT,OAAO,CAAC,oBAAoB,CAAC;CAoDhC"}
|
package/dist/server.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Keyring } from "@polkadot/keyring";
|
|
2
|
-
import { u8aToHex } from "@polkadot/util";
|
|
3
1
|
import { ProviderApi } from "@prosopo/api";
|
|
4
2
|
import { ProsopoApiError, ProsopoContractError, getLogger, } from "@prosopo/common";
|
|
3
|
+
import { Keyring } from "@prosopo/keyring";
|
|
5
4
|
import { loadBalancer } from "@prosopo/load-balancer";
|
|
6
5
|
import { ProcaptchaOutputSchema, decodeProcaptchaOutput, } from "@prosopo/types";
|
|
6
|
+
import { u8aToHex } from "@prosopo/util";
|
|
7
7
|
import i18n from "i18next";
|
|
8
8
|
export class ProsopoServer {
|
|
9
9
|
constructor(config, pair) {
|
|
@@ -19,8 +19,11 @@ export class ProsopoServer {
|
|
|
19
19
|
getProviderApi(providerUrl) {
|
|
20
20
|
return new ProviderApi(providerUrl, this.dappAccount || "");
|
|
21
21
|
}
|
|
22
|
-
async verifyProvider(token, timeouts, providerUrl, timestamp, user, challenge) {
|
|
23
|
-
this.logger.info(
|
|
22
|
+
async verifyProvider(token, timeouts, providerUrl, timestamp, user, challenge, ip) {
|
|
23
|
+
this.logger.info(() => ({
|
|
24
|
+
data: { providerUrl },
|
|
25
|
+
msg: "Verifying with provider",
|
|
26
|
+
}));
|
|
24
27
|
const dappUserSignature = this.pair?.sign(timestamp.toString());
|
|
25
28
|
if (!dappUserSignature) {
|
|
26
29
|
throw new ProsopoContractError("CAPTCHA.INVALID_TIMESTAMP", {
|
|
@@ -33,42 +36,61 @@ export class ProsopoServer {
|
|
|
33
36
|
const powTimeout = this.config.timeouts.pow.cachedTimeout;
|
|
34
37
|
const recent = timestamp ? Date.now() - timestamp < powTimeout : false;
|
|
35
38
|
if (!recent) {
|
|
36
|
-
this.logger.error(
|
|
39
|
+
this.logger.error(() => ({
|
|
40
|
+
data: { timestamp },
|
|
41
|
+
msg: "PoW captcha is not recent",
|
|
42
|
+
}));
|
|
37
43
|
return {
|
|
38
44
|
verified: false,
|
|
39
45
|
status: i18n.t("API.USER_NOT_VERIFIED_TIME_EXPIRED"),
|
|
40
46
|
};
|
|
41
47
|
}
|
|
42
|
-
return await providerApi.submitPowCaptchaVerify(token, signatureHex, timeouts.pow.cachedTimeout, user);
|
|
48
|
+
return await providerApi.submitPowCaptchaVerify(token, signatureHex, timeouts.pow.cachedTimeout, user, ip);
|
|
43
49
|
}
|
|
44
50
|
const imageTimeout = this.config.timeouts.image.cachedTimeout;
|
|
45
51
|
const recent = timestamp ? Date.now() - timestamp < imageTimeout : false;
|
|
46
52
|
if (!recent) {
|
|
47
|
-
this.logger.error(
|
|
53
|
+
this.logger.error(() => ({
|
|
54
|
+
data: { timestamp },
|
|
55
|
+
msg: "Image captcha is not recent",
|
|
56
|
+
}));
|
|
48
57
|
return {
|
|
49
58
|
verified: false,
|
|
50
59
|
status: i18n.t("API.USER_NOT_VERIFIED_TIME_EXPIRED"),
|
|
51
60
|
};
|
|
52
61
|
}
|
|
53
|
-
return await providerApi.verifyDappUser(token, signatureHex, user, timeouts.image.cachedTimeout);
|
|
62
|
+
return await providerApi.verifyDappUser(token, signatureHex, user, timeouts.image.cachedTimeout, ip);
|
|
54
63
|
}
|
|
55
|
-
async isVerified(token) {
|
|
64
|
+
async isVerified(token, ip) {
|
|
56
65
|
try {
|
|
57
66
|
const payload = decodeProcaptchaOutput(token);
|
|
58
67
|
const { providerUrl, challenge, timestamp, user } = ProcaptchaOutputSchema.parse(payload);
|
|
59
68
|
const providers = await loadBalancer(this.config.defaultEnvironment);
|
|
60
69
|
const provider = providers.find((p) => p.url === providerUrl);
|
|
61
70
|
if (!provider) {
|
|
62
|
-
this.logger.error(
|
|
71
|
+
this.logger.error(() => ({
|
|
72
|
+
data: { providerUrl },
|
|
73
|
+
msg: "Provider not found",
|
|
74
|
+
}));
|
|
63
75
|
return {
|
|
64
76
|
verified: false,
|
|
65
77
|
status: i18n.t("API.USER_NOT_VERIFIED"),
|
|
66
78
|
};
|
|
67
79
|
}
|
|
68
|
-
|
|
80
|
+
const verificationResponse = await this.verifyProvider(token, this.config.timeouts, provider.url, Number(timestamp), user, challenge, ip);
|
|
81
|
+
this.logger.info(() => ({
|
|
82
|
+
data: {
|
|
83
|
+
verificationResponse,
|
|
84
|
+
providerUrl,
|
|
85
|
+
user,
|
|
86
|
+
challenge,
|
|
87
|
+
siteKey: this.pair?.address,
|
|
88
|
+
},
|
|
89
|
+
}));
|
|
90
|
+
return verificationResponse;
|
|
69
91
|
}
|
|
70
92
|
catch (err) {
|
|
71
|
-
this.logger.error({ err, token });
|
|
93
|
+
this.logger.error(() => ({ err, data: { token } }));
|
|
72
94
|
throw new ProsopoApiError("API.BAD_REQUEST", {
|
|
73
95
|
context: { code: 500, token },
|
|
74
96
|
});
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAGN,eAAe,EACf,oBAAoB,EACpB,SAAS,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAEN,sBAAsB,EAItB,sBAAsB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,MAAM,OAAO,aAAa;IAQzB,YAAY,MAAiC,EAAE,IAAkB;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,SAAS,CACtB,IAAI,CAAC,MAAM,CAAC,QAA+B,EAC3C,iBAAiB,CACjB,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,IAAI,EAAE,SAAS;SACf,CAAC,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,WAAmB;QACjC,OAAO,IAAI,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAYM,KAAK,CAAC,cAAc,CAC1B,KAAa,EACb,QAA8B,EAC9B,WAAmB,EACnB,SAAiB,EACjB,IAAY,EACZ,SAAkB,EAClB,EAAW;QAEX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACvB,IAAI,EAAE,EAAE,WAAW,EAAE;YACrB,GAAG,EAAE,yBAAyB;SAC9B,CAAC,CAAC,CAAC;QACJ,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxB,MAAM,IAAI,oBAAoB,CAAC,2BAA2B,EAAE;gBAC3D,OAAO,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE;aACzC,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEjD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,SAAS,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;YAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;YACvE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;oBACxB,IAAI,EAAE,EAAE,SAAS,EAAE;oBACnB,GAAG,EAAE,2BAA2B;iBAChC,CAAC,CAAC,CAAC;gBACJ,OAAO;oBACN,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,oCAAoC,CAAC;iBACpD,CAAC;YACH,CAAC;YACD,OAAO,MAAM,WAAW,CAAC,sBAAsB,CAC9C,KAAK,EACL,YAAY,EACZ,QAAQ,CAAC,GAAG,CAAC,aAAa,EAC1B,IAAI,EACJ,EAAE,CACF,CAAC;QACH,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;QAC9D,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;QACzE,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBACxB,IAAI,EAAE,EAAE,SAAS,EAAE;gBACnB,GAAG,EAAE,6BAA6B;aAClC,CAAC,CAAC,CAAC;YACJ,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,oCAAoC,CAAC;aACpD,CAAC;QACH,CAAC;QACD,OAAO,MAAM,WAAW,CAAC,cAAc,CACtC,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,QAAQ,CAAC,KAAK,CAAC,aAAa,EAC5B,EAAE,CACF,CAAC;IACH,CAAC;IAOM,KAAK,CAAC,UAAU,CACtB,KAAsB,EACtB,EAAW;QAEX,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAE9C,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,GAChD,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAGvC,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAGrE,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;YAG9D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;oBACxB,IAAI,EAAE,EAAE,WAAW,EAAE;oBACrB,GAAG,EAAE,oBAAoB;iBACzB,CAAC,CAAC,CAAC;gBACJ,OAAO;oBACN,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC;iBACvC,CAAC;YACH,CAAC;YACD,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,cAAc,CACrD,KAAK,EACL,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,QAAQ,CAAC,GAAG,EACZ,MAAM,CAAC,SAAS,CAAC,EACjB,IAAI,EACJ,SAAS,EACT,EAAE,CACF,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvB,IAAI,EAAE;oBACL,oBAAoB;oBACpB,WAAW;oBACX,IAAI;oBACJ,SAAS;oBACT,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO;iBAC3B;aACD,CAAC,CAAC,CAAC;YAEJ,OAAO,oBAAoB,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE;gBAC5C,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;aAC7B,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;CACD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prosopo/server",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.7",
|
|
4
4
|
"description": "NodeJS package for server side communication with the prosopo captcha client",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -22,8 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"repository": {
|
|
24
24
|
"type": "git",
|
|
25
|
-
"url": "git+https://github.com/prosopo/captcha.git"
|
|
26
|
-
"directory": "packages/server"
|
|
25
|
+
"url": "git+https://github.com/prosopo/captcha.git"
|
|
27
26
|
},
|
|
28
27
|
"author": "PROSOPO LIMITED",
|
|
29
28
|
"license": "Apache-2.0",
|
|
@@ -33,25 +32,29 @@
|
|
|
33
32
|
"homepage": "https://github.com/prosopo/captcha#readme",
|
|
34
33
|
"sideEffects": false,
|
|
35
34
|
"dependencies": {
|
|
36
|
-
"@polkadot/keyring": "12.6.2",
|
|
37
35
|
"@polkadot/util": "12.6.2",
|
|
38
|
-
"@prosopo/api": "
|
|
39
|
-
"@prosopo/common": "
|
|
40
|
-
"@prosopo/keyring": "2.
|
|
41
|
-
"@prosopo/load-balancer": "2.6.
|
|
42
|
-
"@prosopo/types": "
|
|
43
|
-
"
|
|
36
|
+
"@prosopo/api": "3.0.5",
|
|
37
|
+
"@prosopo/common": "3.0.2",
|
|
38
|
+
"@prosopo/keyring": "2.8.5",
|
|
39
|
+
"@prosopo/load-balancer": "2.6.13",
|
|
40
|
+
"@prosopo/types": "3.0.2",
|
|
41
|
+
"@typegoose/auto-increment": "4.13.0",
|
|
42
|
+
"axios": "1.10.0",
|
|
43
|
+
"esbuild": "0.25.6",
|
|
44
|
+
"express": "4.21.2",
|
|
45
|
+
"openpgp": "5.11.3",
|
|
46
|
+
"webpack-dev-server": "5.2.2"
|
|
44
47
|
},
|
|
45
48
|
"devDependencies": {
|
|
46
|
-
"@prosopo/config": "
|
|
49
|
+
"@prosopo/config": "3.1.0",
|
|
47
50
|
"@vitest/coverage-v8": "3.0.9",
|
|
48
51
|
"concurrently": "9.0.1",
|
|
49
52
|
"del-cli": "6.0.0",
|
|
50
|
-
"npm-run-all": "
|
|
53
|
+
"npm-run-all": "4.1.5",
|
|
51
54
|
"tslib": "2.7.0",
|
|
52
|
-
"tsx": "4.
|
|
55
|
+
"tsx": "4.20.3",
|
|
53
56
|
"typescript": "5.6.2",
|
|
54
|
-
"vite": "6.
|
|
57
|
+
"vite": "6.3.5",
|
|
55
58
|
"vitest": "3.0.9"
|
|
56
59
|
}
|
|
57
60
|
}
|