@0xsequence/wallet-wdk 3.0.3 → 3.0.4
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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-typecheck.log +1 -1
- package/CHANGELOG.md +12 -0
- package/dist/sequence/handlers/idtoken.d.ts +3 -3
- package/dist/sequence/handlers/idtoken.d.ts.map +1 -1
- package/dist/sequence/handlers/idtoken.js +3 -0
- package/dist/sequence/manager.d.ts +3 -0
- package/dist/sequence/manager.d.ts.map +1 -1
- package/dist/sequence/manager.js +7 -1
- package/dist/sequence/wallets.d.ts +2 -2
- package/dist/sequence/wallets.d.ts.map +1 -1
- package/dist/sequence/wallets.js +7 -3
- package/package.json +6 -6
- package/src/sequence/handlers/idtoken.ts +8 -2
- package/src/sequence/manager.ts +32 -14
- package/src/sequence/wallets.ts +16 -6
- package/test/identity-auth-dbs.test.ts +36 -0
- package/test/idtoken.test.ts +16 -0
- package/test/sessions-idtoken.test.ts +1 -0
- package/test/wallets.test.ts +61 -0
package/.turbo/turbo-build.log
CHANGED
package/.turbo/turbo-lint.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @0xsequence/wallet-wdk
|
|
2
2
|
|
|
3
|
+
## 3.0.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- id-token login support
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @0xsequence/guard@3.0.4
|
|
10
|
+
- @0xsequence/identity-instrument@3.0.4
|
|
11
|
+
- @0xsequence/relayer@3.0.4
|
|
12
|
+
- @0xsequence/wallet-core@3.0.4
|
|
13
|
+
- @0xsequence/wallet-primitives@3.0.4
|
|
14
|
+
|
|
3
15
|
## 3.0.3
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -9,13 +9,13 @@ import { IdentitySigner } from '../../identity/signer.js';
|
|
|
9
9
|
import { IdentityHandler } from './identity.js';
|
|
10
10
|
import type { WdkEnv } from '../../env.js';
|
|
11
11
|
type RespondFn = (idToken: string) => Promise<void>;
|
|
12
|
-
export type PromptIdTokenHandler = (kind: 'google-id-token' | `custom-${string}`, respond: RespondFn) => Promise<void>;
|
|
12
|
+
export type PromptIdTokenHandler = (kind: 'google-id-token' | 'apple-id-token' | `custom-${string}`, respond: RespondFn) => Promise<void>;
|
|
13
13
|
export declare class IdTokenHandler extends IdentityHandler implements Handler {
|
|
14
|
-
readonly signupKind: 'google-id-token' | `custom-${string}`;
|
|
14
|
+
readonly signupKind: 'google-id-token' | 'apple-id-token' | `custom-${string}`;
|
|
15
15
|
readonly issuer: string;
|
|
16
16
|
readonly audience: string;
|
|
17
17
|
private onPromptIdToken;
|
|
18
|
-
constructor(signupKind: 'google-id-token' | `custom-${string}`, issuer: string, audience: string, nitro: Identity.IdentityInstrument, signatures: Signatures, authKeys: Db.AuthKeys, env?: WdkEnv);
|
|
18
|
+
constructor(signupKind: 'google-id-token' | 'apple-id-token' | `custom-${string}`, issuer: string, audience: string, nitro: Identity.IdentityInstrument, signatures: Signatures, authKeys: Db.AuthKeys, env?: WdkEnv);
|
|
19
19
|
get kind(): string;
|
|
20
20
|
registerUI(onPromptIdToken: PromptIdTokenHandler): () => void;
|
|
21
21
|
unregisterUI(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idtoken.d.ts","sourceRoot":"","sources":["../../../src/sequence/handlers/idtoken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,QAAQ,MAAM,iCAAiC,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACtH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE1C,KAAK,SAAS,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnD,MAAM,MAAM,oBAAoB,GAAG,
|
|
1
|
+
{"version":3,"file":"idtoken.d.ts","sourceRoot":"","sources":["../../../src/sequence/handlers/idtoken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,QAAQ,MAAM,iCAAiC,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACtH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE1C,KAAK,SAAS,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnD,MAAM,MAAM,oBAAoB,GAAG,CACjC,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,UAAU,MAAM,EAAE,EAC/D,OAAO,EAAE,SAAS,KACf,OAAO,CAAC,IAAI,CAAC,CAAA;AAElB,qBAAa,cAAe,SAAQ,eAAgB,YAAW,OAAO;aAIlD,UAAU,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,UAAU,MAAM,EAAE;aACrE,MAAM,EAAE,MAAM;aACd,QAAQ,EAAE,MAAM;IALlC,OAAO,CAAC,eAAe,CAAkC;gBAGvC,UAAU,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,UAAU,MAAM,EAAE,EACrE,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChC,KAAK,EAAE,QAAQ,CAAC,kBAAkB,EAClC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACrB,GAAG,CAAC,EAAE,MAAM;IAKd,IAAW,IAAI,WAQd;IAEM,UAAU,CAAC,eAAe,EAAE,oBAAoB;IAOhD,YAAY;IAIN,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IAQnF,SAAS,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAS5F,MAAM,CACV,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,UAAU,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,EAC/B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;IAgD9D,OAAO,CAAC,UAAU;CAqBnB"}
|
|
@@ -17,6 +17,9 @@ export class IdTokenHandler extends IdentityHandler {
|
|
|
17
17
|
if (this.signupKind === 'google-id-token') {
|
|
18
18
|
return Kinds.LoginGoogle;
|
|
19
19
|
}
|
|
20
|
+
if (this.signupKind === 'apple-id-token') {
|
|
21
|
+
return Kinds.LoginApple;
|
|
22
|
+
}
|
|
20
23
|
return 'login-' + this.signupKind;
|
|
21
24
|
}
|
|
22
25
|
registerUI(onPromptIdToken) {
|
|
@@ -79,6 +79,7 @@ export type ManagerOptions = {
|
|
|
79
79
|
apple?: {
|
|
80
80
|
enabled: boolean;
|
|
81
81
|
clientId: string;
|
|
82
|
+
authMethod?: 'authcode' | 'id-token';
|
|
82
83
|
};
|
|
83
84
|
customProviders?: CustomIdentityProvider[];
|
|
84
85
|
};
|
|
@@ -100,6 +101,7 @@ export type ResolvedIdentityOptions = {
|
|
|
100
101
|
apple: {
|
|
101
102
|
enabled: boolean;
|
|
102
103
|
clientId: string;
|
|
104
|
+
authMethod: 'authcode' | 'id-token';
|
|
103
105
|
};
|
|
104
106
|
customProviders?: CustomIdentityProvider[];
|
|
105
107
|
};
|
|
@@ -180,6 +182,7 @@ export declare const ManagerOptionsDefaults: {
|
|
|
180
182
|
apple: {
|
|
181
183
|
enabled: boolean;
|
|
182
184
|
clientId: string;
|
|
185
|
+
authMethod: "authcode";
|
|
183
186
|
};
|
|
184
187
|
};
|
|
185
188
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/sequence/manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/sequence/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/sequence/manager.js
CHANGED
|
@@ -98,6 +98,7 @@ export const ManagerOptionsDefaults = {
|
|
|
98
98
|
apple: {
|
|
99
99
|
enabled: false,
|
|
100
100
|
clientId: '',
|
|
101
|
+
authMethod: 'authcode',
|
|
101
102
|
},
|
|
102
103
|
},
|
|
103
104
|
};
|
|
@@ -402,7 +403,12 @@ export class Manager {
|
|
|
402
403
|
}
|
|
403
404
|
}
|
|
404
405
|
if (ops.identity.apple?.enabled) {
|
|
405
|
-
|
|
406
|
+
if (ops.identity.apple.authMethod === 'id-token') {
|
|
407
|
+
shared.handlers.set(Kinds.LoginApple, new IdTokenHandler('apple-id-token', 'https://appleid.apple.com', ops.identity.apple.clientId, identityInstrument, modules.signatures, shared.databases.authKeys, shared.env));
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
shared.handlers.set(Kinds.LoginApple, new AuthCodeHandler('apple', 'https://appleid.apple.com', 'https://appleid.apple.com/auth/authorize', ops.identity.apple.clientId, identityInstrument, modules.signatures, shared.databases.authCommitments, shared.databases.authKeys, shared.env));
|
|
411
|
+
}
|
|
406
412
|
}
|
|
407
413
|
if (ops.identity.customProviders?.length) {
|
|
408
414
|
for (const provider of ops.identity.customProviders) {
|
|
@@ -47,7 +47,7 @@ export type EmailOtpSignupArgs = CommonSignupArgs & {
|
|
|
47
47
|
email: string;
|
|
48
48
|
};
|
|
49
49
|
export type IdTokenSignupArgs = CommonSignupArgs & {
|
|
50
|
-
kind: 'google-id-token' | `custom-${string}`;
|
|
50
|
+
kind: 'google-id-token' | 'apple-id-token' | `custom-${string}`;
|
|
51
51
|
idToken: string;
|
|
52
52
|
};
|
|
53
53
|
export type CompleteRedirectArgs = CommonSignupArgs & {
|
|
@@ -167,7 +167,7 @@ export interface WalletsInterface {
|
|
|
167
167
|
* - `kind: 'mnemonic'`: Uses a mnemonic phrase as the login credential.
|
|
168
168
|
* - `kind: 'passkey'`: Prompts the user to create a WebAuthn passkey.
|
|
169
169
|
* - `kind: 'email-otp'`: Initiates an OTP flow to the user's email.
|
|
170
|
-
* - `kind: 'google-id-token'`: Completes an OIDC ID token flow when
|
|
170
|
+
* - `kind: 'google-id-token' | 'apple-id-token'`: Completes an OIDC ID token flow when the provider is configured with `authMethod: 'id-token'`.
|
|
171
171
|
* - `kind: 'google-pkce' | 'apple'`: Completes an OAuth redirect flow.
|
|
172
172
|
* Common options like `noGuard` or `noRecovery` can customize the wallet's security features.
|
|
173
173
|
* @returns A promise that resolves to the address of the newly created wallet, or `undefined` if the sign-up was aborted.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/sequence/wallets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAsB,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,OAAO,EAA+B,MAAM,IAAI,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAK3D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAS,cAAc,EAA0B,MAAM,mBAAmB,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/sequence/wallets.ts"],"names":[],"mappings":"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"}
|
package/dist/sequence/wallets.js
CHANGED
|
@@ -18,6 +18,9 @@ function getSignerKindForSignup(kind) {
|
|
|
18
18
|
if (kind === 'google-id-token' || kind === 'google-pkce') {
|
|
19
19
|
return Kinds.LoginGoogle;
|
|
20
20
|
}
|
|
21
|
+
if (kind === 'apple-id-token' || kind === 'apple') {
|
|
22
|
+
return Kinds.LoginApple;
|
|
23
|
+
}
|
|
21
24
|
if (kind.startsWith('custom-')) {
|
|
22
25
|
return kind;
|
|
23
26
|
}
|
|
@@ -310,15 +313,16 @@ export class Wallets {
|
|
|
310
313
|
loginEmail: returnedEmail,
|
|
311
314
|
};
|
|
312
315
|
}
|
|
313
|
-
case 'google-id-token':
|
|
314
|
-
|
|
316
|
+
case 'google-id-token':
|
|
317
|
+
case 'apple-id-token': {
|
|
318
|
+
const handler = getIdTokenSignupHandler(this.shared, args.kind === 'google-id-token' ? Kinds.LoginGoogle : Kinds.LoginApple);
|
|
315
319
|
const [signer, metadata] = await handler.completeAuth(args.idToken);
|
|
316
320
|
const loginEmail = metadata.email;
|
|
317
321
|
this.shared.modules.logger.log('Created new id token signer:', signer.address);
|
|
318
322
|
return {
|
|
319
323
|
signer,
|
|
320
324
|
extra: {
|
|
321
|
-
signerKind:
|
|
325
|
+
signerKind: getSignerKindForSignup(args.kind),
|
|
322
326
|
},
|
|
323
327
|
loginEmail,
|
|
324
328
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@0xsequence/wallet-wdk",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.4",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
"jwt-decode": "^4.0.0",
|
|
31
31
|
"ox": "^0.9.17",
|
|
32
32
|
"uuid": "^13.0.0",
|
|
33
|
-
"@0xsequence/
|
|
34
|
-
"@0xsequence/
|
|
35
|
-
"@0xsequence/
|
|
36
|
-
"@0xsequence/
|
|
37
|
-
"@0xsequence/wallet-primitives": "^3.0.
|
|
33
|
+
"@0xsequence/guard": "^3.0.4",
|
|
34
|
+
"@0xsequence/identity-instrument": "^3.0.4",
|
|
35
|
+
"@0xsequence/wallet-core": "^3.0.4",
|
|
36
|
+
"@0xsequence/relayer": "^3.0.4",
|
|
37
|
+
"@0xsequence/wallet-primitives": "^3.0.4"
|
|
38
38
|
},
|
|
39
39
|
"scripts": {
|
|
40
40
|
"build": "tsc",
|
|
@@ -12,13 +12,16 @@ import type { WdkEnv } from '../../env.js'
|
|
|
12
12
|
|
|
13
13
|
type RespondFn = (idToken: string) => Promise<void>
|
|
14
14
|
|
|
15
|
-
export type PromptIdTokenHandler = (
|
|
15
|
+
export type PromptIdTokenHandler = (
|
|
16
|
+
kind: 'google-id-token' | 'apple-id-token' | `custom-${string}`,
|
|
17
|
+
respond: RespondFn,
|
|
18
|
+
) => Promise<void>
|
|
16
19
|
|
|
17
20
|
export class IdTokenHandler extends IdentityHandler implements Handler {
|
|
18
21
|
private onPromptIdToken: undefined | PromptIdTokenHandler
|
|
19
22
|
|
|
20
23
|
constructor(
|
|
21
|
-
public readonly signupKind: 'google-id-token' | `custom-${string}`,
|
|
24
|
+
public readonly signupKind: 'google-id-token' | 'apple-id-token' | `custom-${string}`,
|
|
22
25
|
public readonly issuer: string,
|
|
23
26
|
public readonly audience: string,
|
|
24
27
|
nitro: Identity.IdentityInstrument,
|
|
@@ -33,6 +36,9 @@ export class IdTokenHandler extends IdentityHandler implements Handler {
|
|
|
33
36
|
if (this.signupKind === 'google-id-token') {
|
|
34
37
|
return Kinds.LoginGoogle
|
|
35
38
|
}
|
|
39
|
+
if (this.signupKind === 'apple-id-token') {
|
|
40
|
+
return Kinds.LoginApple
|
|
41
|
+
}
|
|
36
42
|
return 'login-' + this.signupKind
|
|
37
43
|
}
|
|
38
44
|
|
package/src/sequence/manager.ts
CHANGED
|
@@ -107,6 +107,7 @@ export type ManagerOptions = {
|
|
|
107
107
|
apple?: {
|
|
108
108
|
enabled: boolean
|
|
109
109
|
clientId: string
|
|
110
|
+
authMethod?: 'authcode' | 'id-token'
|
|
110
111
|
}
|
|
111
112
|
customProviders?: CustomIdentityProvider[]
|
|
112
113
|
}
|
|
@@ -129,6 +130,7 @@ export type ResolvedIdentityOptions = {
|
|
|
129
130
|
apple: {
|
|
130
131
|
enabled: boolean
|
|
131
132
|
clientId: string
|
|
133
|
+
authMethod: 'authcode' | 'id-token'
|
|
132
134
|
}
|
|
133
135
|
customProviders?: CustomIdentityProvider[]
|
|
134
136
|
}
|
|
@@ -260,6 +262,7 @@ export const ManagerOptionsDefaults = {
|
|
|
260
262
|
apple: {
|
|
261
263
|
enabled: false,
|
|
262
264
|
clientId: '',
|
|
265
|
+
authMethod: 'authcode' as const,
|
|
263
266
|
},
|
|
264
267
|
},
|
|
265
268
|
}
|
|
@@ -716,20 +719,35 @@ export class Manager {
|
|
|
716
719
|
}
|
|
717
720
|
}
|
|
718
721
|
if (ops.identity.apple?.enabled) {
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
)
|
|
732
|
-
|
|
722
|
+
if (ops.identity.apple.authMethod === 'id-token') {
|
|
723
|
+
shared.handlers.set(
|
|
724
|
+
Kinds.LoginApple,
|
|
725
|
+
new IdTokenHandler(
|
|
726
|
+
'apple-id-token',
|
|
727
|
+
'https://appleid.apple.com',
|
|
728
|
+
ops.identity.apple.clientId,
|
|
729
|
+
identityInstrument,
|
|
730
|
+
modules.signatures,
|
|
731
|
+
shared.databases.authKeys,
|
|
732
|
+
shared.env,
|
|
733
|
+
),
|
|
734
|
+
)
|
|
735
|
+
} else {
|
|
736
|
+
shared.handlers.set(
|
|
737
|
+
Kinds.LoginApple,
|
|
738
|
+
new AuthCodeHandler(
|
|
739
|
+
'apple',
|
|
740
|
+
'https://appleid.apple.com',
|
|
741
|
+
'https://appleid.apple.com/auth/authorize',
|
|
742
|
+
ops.identity.apple.clientId,
|
|
743
|
+
identityInstrument,
|
|
744
|
+
modules.signatures,
|
|
745
|
+
shared.databases.authCommitments,
|
|
746
|
+
shared.databases.authKeys,
|
|
747
|
+
shared.env,
|
|
748
|
+
),
|
|
749
|
+
)
|
|
750
|
+
}
|
|
733
751
|
}
|
|
734
752
|
if (ops.identity.customProviders?.length) {
|
|
735
753
|
for (const provider of ops.identity.customProviders) {
|
package/src/sequence/wallets.ts
CHANGED
|
@@ -28,13 +28,19 @@ function getSignerKindForSignup(kind: SignupArgs['kind'] | AuthCommitment['kind'
|
|
|
28
28
|
if (kind === 'google-id-token' || kind === 'google-pkce') {
|
|
29
29
|
return Kinds.LoginGoogle
|
|
30
30
|
}
|
|
31
|
+
if (kind === 'apple-id-token' || kind === 'apple') {
|
|
32
|
+
return Kinds.LoginApple
|
|
33
|
+
}
|
|
31
34
|
if (kind.startsWith('custom-')) {
|
|
32
35
|
return kind
|
|
33
36
|
}
|
|
34
37
|
return ('login-' + kind) as string
|
|
35
38
|
}
|
|
36
39
|
|
|
37
|
-
function getIdTokenSignupHandler(
|
|
40
|
+
function getIdTokenSignupHandler(
|
|
41
|
+
shared: Shared,
|
|
42
|
+
kind: typeof Kinds.LoginGoogle | typeof Kinds.LoginApple | `custom-${string}`,
|
|
43
|
+
): IdTokenHandler {
|
|
38
44
|
const handler = shared.handlers.get(kind)
|
|
39
45
|
if (!handler) {
|
|
40
46
|
throw new Error('handler-not-registered')
|
|
@@ -82,7 +88,7 @@ export type EmailOtpSignupArgs = CommonSignupArgs & {
|
|
|
82
88
|
}
|
|
83
89
|
|
|
84
90
|
export type IdTokenSignupArgs = CommonSignupArgs & {
|
|
85
|
-
kind: 'google-id-token' | `custom-${string}`
|
|
91
|
+
kind: 'google-id-token' | 'apple-id-token' | `custom-${string}`
|
|
86
92
|
idToken: string
|
|
87
93
|
}
|
|
88
94
|
|
|
@@ -222,7 +228,7 @@ export interface WalletsInterface {
|
|
|
222
228
|
* - `kind: 'mnemonic'`: Uses a mnemonic phrase as the login credential.
|
|
223
229
|
* - `kind: 'passkey'`: Prompts the user to create a WebAuthn passkey.
|
|
224
230
|
* - `kind: 'email-otp'`: Initiates an OTP flow to the user's email.
|
|
225
|
-
* - `kind: 'google-id-token'`: Completes an OIDC ID token flow when
|
|
231
|
+
* - `kind: 'google-id-token' | 'apple-id-token'`: Completes an OIDC ID token flow when the provider is configured with `authMethod: 'id-token'`.
|
|
226
232
|
* - `kind: 'google-pkce' | 'apple'`: Completes an OAuth redirect flow.
|
|
227
233
|
* Common options like `noGuard` or `noRecovery` can customize the wallet's security features.
|
|
228
234
|
* @returns A promise that resolves to the address of the newly created wallet, or `undefined` if the sign-up was aborted.
|
|
@@ -721,8 +727,12 @@ export class Wallets implements WalletsInterface {
|
|
|
721
727
|
}
|
|
722
728
|
}
|
|
723
729
|
|
|
724
|
-
case 'google-id-token':
|
|
725
|
-
|
|
730
|
+
case 'google-id-token':
|
|
731
|
+
case 'apple-id-token': {
|
|
732
|
+
const handler = getIdTokenSignupHandler(
|
|
733
|
+
this.shared,
|
|
734
|
+
args.kind === 'google-id-token' ? Kinds.LoginGoogle : Kinds.LoginApple,
|
|
735
|
+
)
|
|
726
736
|
const [signer, metadata] = await handler.completeAuth(args.idToken)
|
|
727
737
|
const loginEmail = metadata.email
|
|
728
738
|
this.shared.modules.logger.log('Created new id token signer:', signer.address)
|
|
@@ -730,7 +740,7 @@ export class Wallets implements WalletsInterface {
|
|
|
730
740
|
return {
|
|
731
741
|
signer,
|
|
732
742
|
extra: {
|
|
733
|
-
signerKind:
|
|
743
|
+
signerKind: getSignerKindForSignup(args.kind),
|
|
734
744
|
},
|
|
735
745
|
loginEmail,
|
|
736
746
|
}
|
|
@@ -395,6 +395,42 @@ describe('Identity Authentication Databases', () => {
|
|
|
395
395
|
expect(handlers.has('login-google-pkce')).toBe(false)
|
|
396
396
|
})
|
|
397
397
|
|
|
398
|
+
it('Should register the Apple ID token handler when configured explicitly', async () => {
|
|
399
|
+
manager = new Manager({
|
|
400
|
+
stateProvider: new State.Local.Provider(new State.Local.IndexedDbStore(`manager-apple-idtoken-${Date.now()}`)),
|
|
401
|
+
networks: [
|
|
402
|
+
{
|
|
403
|
+
name: 'Test Network',
|
|
404
|
+
type: Network.NetworkType.MAINNET,
|
|
405
|
+
rpcUrl: LOCAL_RPC_URL,
|
|
406
|
+
chainId: Network.ChainId.ARBITRUM,
|
|
407
|
+
blockExplorer: { url: 'https://arbiscan.io' },
|
|
408
|
+
nativeCurrency: {
|
|
409
|
+
name: 'Ether',
|
|
410
|
+
symbol: 'ETH',
|
|
411
|
+
decimals: 18,
|
|
412
|
+
},
|
|
413
|
+
},
|
|
414
|
+
],
|
|
415
|
+
relayers: [],
|
|
416
|
+
authCommitmentsDb,
|
|
417
|
+
authKeysDb,
|
|
418
|
+
identity: {
|
|
419
|
+
url: 'https://dev-identity.sequence-dev.app',
|
|
420
|
+
fetch: window.fetch,
|
|
421
|
+
apple: {
|
|
422
|
+
enabled: true,
|
|
423
|
+
clientId: 'test-apple-client-id',
|
|
424
|
+
authMethod: 'id-token',
|
|
425
|
+
},
|
|
426
|
+
},
|
|
427
|
+
})
|
|
428
|
+
|
|
429
|
+
const handlers = (manager as any).shared.handlers
|
|
430
|
+
expect(handlers.has('login-apple-id-token')).toBe(false)
|
|
431
|
+
expect(handlers.has('login-apple')).toBe(true)
|
|
432
|
+
})
|
|
433
|
+
|
|
398
434
|
it('Should use auth databases when email authentication is enabled', async () => {
|
|
399
435
|
manager = new Manager({
|
|
400
436
|
stateProvider: new State.Local.Provider(new State.Local.IndexedDbStore(`manager-email-${Date.now()}`)),
|
package/test/idtoken.test.ts
CHANGED
|
@@ -101,6 +101,22 @@ describe('IdTokenHandler', () => {
|
|
|
101
101
|
expect(handler.kind).toBe(Kinds.LoginGoogle)
|
|
102
102
|
})
|
|
103
103
|
|
|
104
|
+
it('Should normalize apple-id-token handlers to login-apple', () => {
|
|
105
|
+
const handler = new IdTokenHandler(
|
|
106
|
+
'apple-id-token',
|
|
107
|
+
'https://appleid.apple.com',
|
|
108
|
+
'test-apple-client-id',
|
|
109
|
+
mockNitroInstrument,
|
|
110
|
+
mockSignatures,
|
|
111
|
+
mockAuthKeys,
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
expect(handler.signupKind).toBe('apple-id-token')
|
|
115
|
+
expect(handler.issuer).toBe('https://appleid.apple.com')
|
|
116
|
+
expect(handler.audience).toBe('test-apple-client-id')
|
|
117
|
+
expect(handler.kind).toBe(Kinds.LoginApple)
|
|
118
|
+
})
|
|
119
|
+
|
|
104
120
|
it('Should initialize without a registered UI callback', () => {
|
|
105
121
|
expect(idTokenHandler['onPromptIdToken']).toBeUndefined()
|
|
106
122
|
})
|
package/test/wallets.test.ts
CHANGED
|
@@ -71,6 +71,48 @@ describe('Wallets', () => {
|
|
|
71
71
|
expect(configuration.login[0]!.kind).toBe(Kinds.LoginGoogle)
|
|
72
72
|
})
|
|
73
73
|
|
|
74
|
+
it('Should create a new wallet using apple-id-token when Apple ID token auth is enabled', async () => {
|
|
75
|
+
manager = newManager({
|
|
76
|
+
identity: {
|
|
77
|
+
apple: {
|
|
78
|
+
enabled: true,
|
|
79
|
+
clientId: 'test-apple-client-id',
|
|
80
|
+
authMethod: 'id-token',
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
const handler = (manager as any).shared.handlers.get(Kinds.LoginApple) as IdTokenHandler
|
|
86
|
+
const loginMnemonic = Mnemonic.random(Mnemonic.english)
|
|
87
|
+
const loginSigner = MnemonicHandler.toSigner(loginMnemonic)
|
|
88
|
+
if (!loginSigner) {
|
|
89
|
+
throw new Error('Failed to create login signer for test')
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const completeAuthSpy = vi
|
|
93
|
+
.spyOn(handler, 'completeAuth')
|
|
94
|
+
.mockResolvedValue([loginSigner as unknown as IdentitySigner, { email: 'apple-user@example.com' }])
|
|
95
|
+
|
|
96
|
+
const wallet = await manager.wallets.signUp({
|
|
97
|
+
kind: 'apple-id-token',
|
|
98
|
+
idToken: 'eyJhbGciOiJub25lIn0.eyJleHAiOjQxMDI0NDQ4MDB9.',
|
|
99
|
+
noGuard: true,
|
|
100
|
+
})
|
|
101
|
+
|
|
102
|
+
expect(wallet).toBeDefined()
|
|
103
|
+
expect(completeAuthSpy).toHaveBeenCalledWith('eyJhbGciOiJub25lIn0.eyJleHAiOjQxMDI0NDQ4MDB9.')
|
|
104
|
+
await expect(manager.wallets.has(wallet!)).resolves.toBeTruthy()
|
|
105
|
+
|
|
106
|
+
const walletEntry = await manager.wallets.get(wallet!)
|
|
107
|
+
expect(walletEntry).toBeDefined()
|
|
108
|
+
expect(walletEntry!.loginType).toBe(Kinds.LoginApple)
|
|
109
|
+
expect(walletEntry!.loginEmail).toBe('apple-user@example.com')
|
|
110
|
+
|
|
111
|
+
const configuration = await manager.wallets.getConfiguration(wallet!)
|
|
112
|
+
expect(configuration.login).toHaveLength(1)
|
|
113
|
+
expect(configuration.login[0]!.kind).toBe(Kinds.LoginApple)
|
|
114
|
+
})
|
|
115
|
+
|
|
74
116
|
it('Should register and unregister Google ID token UI callbacks through the manager', async () => {
|
|
75
117
|
manager = newManager({
|
|
76
118
|
identity: {
|
|
@@ -140,6 +182,25 @@ describe('Wallets', () => {
|
|
|
140
182
|
).rejects.toThrow('handler-does-not-support-id-token')
|
|
141
183
|
})
|
|
142
184
|
|
|
185
|
+
it('Should reject apple-id-token signup when Apple is configured for redirect auth', async () => {
|
|
186
|
+
manager = newManager({
|
|
187
|
+
identity: {
|
|
188
|
+
apple: {
|
|
189
|
+
enabled: true,
|
|
190
|
+
clientId: 'test-apple-client-id',
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
})
|
|
194
|
+
|
|
195
|
+
await expect(
|
|
196
|
+
manager.wallets.signUp({
|
|
197
|
+
kind: 'apple-id-token',
|
|
198
|
+
idToken: 'eyJhbGciOiJub25lIn0.eyJleHAiOjQxMDI0NDQ4MDB9.',
|
|
199
|
+
noGuard: true,
|
|
200
|
+
}),
|
|
201
|
+
).rejects.toThrow('handler-does-not-support-id-token')
|
|
202
|
+
})
|
|
203
|
+
|
|
143
204
|
it('Should reject custom ID token signup when the provider uses redirect auth', async () => {
|
|
144
205
|
manager = newManager({
|
|
145
206
|
identity: {
|