@effect-auth/core 0.1.0-alpha.6 → 0.1.0-alpha.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.
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { verifyAuthenticationResponse as simpleWebAuthnVerifyAuthenticationResponse, verifyRegistrationResponse as simpleWebAuthnVerifyRegistrationResponse } from "@simplewebauthn/server";
|
|
2
|
+
import { Layer } from "effect";
|
|
3
|
+
import { PasskeyVerifier } from "./Passkey.js";
|
|
4
|
+
import type { PasskeyVerifierService } from "./Passkey.js";
|
|
5
|
+
export interface SimpleWebAuthnPasskeyVerifierOptions {
|
|
6
|
+
readonly verifyRegistrationResponse?: typeof simpleWebAuthnVerifyRegistrationResponse;
|
|
7
|
+
readonly verifyAuthenticationResponse?: typeof simpleWebAuthnVerifyAuthenticationResponse;
|
|
8
|
+
}
|
|
9
|
+
export declare const makeSimpleWebAuthnPasskeyVerifier: (options?: SimpleWebAuthnPasskeyVerifierOptions) => PasskeyVerifierService;
|
|
10
|
+
export declare const SimpleWebAuthnPasskeyVerifierLive: Layer.Layer<PasskeyVerifier, never, never>;
|
|
11
|
+
//# sourceMappingURL=PasskeySimpleWebAuthn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasskeySimpleWebAuthn.d.ts","sourceRoot":"","sources":["../src/PasskeySimpleWebAuthn.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,IAAI,0CAA0C,EAC1E,0BAA0B,IAAI,wCAAwC,EACvE,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EAAoB,KAAK,EAAU,MAAM,QAAQ,CAAC;AAEzD,OAAO,EAEL,eAAe,EAEhB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAIV,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,wCAAwC,CAAC;IACtF,QAAQ,CAAC,4BAA4B,CAAC,EAAE,OAAO,0CAA0C,CAAC;CAC3F;AAkMD,eAAO,MAAM,iCAAiC,GAC5C,UAAS,oCAAyC,KACjD,sBAgHF,CAAC;AAEF,eAAO,MAAM,iCAAiC,4CAG7C,CAAC"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { verifyAuthenticationResponse as simpleWebAuthnVerifyAuthenticationResponse, verifyRegistrationResponse as simpleWebAuthnVerifyRegistrationResponse, } from "@simplewebauthn/server";
|
|
2
|
+
import { Effect, Encoding, Layer, Result } from "effect";
|
|
3
|
+
import { PasskeyCredentialId, PasskeyVerifier, PasskeyVerifierError, } from "./Passkey.js";
|
|
4
|
+
const textDecoder = new TextDecoder();
|
|
5
|
+
const verifierError = (operation, message, cause) => new PasskeyVerifierError({
|
|
6
|
+
operation,
|
|
7
|
+
message,
|
|
8
|
+
...(cause === undefined ? {} : { cause }),
|
|
9
|
+
});
|
|
10
|
+
const responseString = (credential, key, operation) => {
|
|
11
|
+
const value = credential.response[key];
|
|
12
|
+
return typeof value === "string"
|
|
13
|
+
? Effect.succeed(value)
|
|
14
|
+
: Effect.fail(verifierError(operation, `Missing ${key}`));
|
|
15
|
+
};
|
|
16
|
+
const optionalResponseString = (credential, key, operation) => {
|
|
17
|
+
const value = credential.response[key];
|
|
18
|
+
return value === undefined
|
|
19
|
+
? Effect.succeed(undefined)
|
|
20
|
+
: typeof value === "string"
|
|
21
|
+
? Effect.succeed(value)
|
|
22
|
+
: Effect.fail(verifierError(operation, `Invalid ${key}`));
|
|
23
|
+
};
|
|
24
|
+
const decodeBase64UrlBytes = (value, operation) => Result.match(Encoding.decodeBase64Url(value), {
|
|
25
|
+
onSuccess: Effect.succeed,
|
|
26
|
+
onFailure: (cause) => Effect.fail(verifierError(operation, "Invalid base64url value", cause)),
|
|
27
|
+
});
|
|
28
|
+
const clientDataChallenge = (clientDataJSON, operation) => decodeBase64UrlBytes(clientDataJSON, operation).pipe(Effect.flatMap((bytes) => Effect.try({
|
|
29
|
+
try: () => JSON.parse(textDecoder.decode(bytes)),
|
|
30
|
+
catch: (cause) => verifierError(operation, "Invalid clientDataJSON", cause),
|
|
31
|
+
})), Effect.flatMap((clientData) => typeof clientData.challenge === "string"
|
|
32
|
+
? Effect.succeed(clientData.challenge)
|
|
33
|
+
: Effect.fail(verifierError(operation, "Missing clientData challenge"))));
|
|
34
|
+
const expectedOrigin = (origin) => typeof origin === "string" ? origin : [...origin];
|
|
35
|
+
const passkeyAuthenticatorAttachment = (credential, operation) => {
|
|
36
|
+
const attachment = credential.authenticatorAttachment;
|
|
37
|
+
return attachment === undefined
|
|
38
|
+
? Effect.succeed(undefined)
|
|
39
|
+
: attachment === "cross-platform" || attachment === "platform"
|
|
40
|
+
? Effect.succeed(attachment)
|
|
41
|
+
: Effect.fail(verifierError(operation, "Invalid authenticatorAttachment"));
|
|
42
|
+
};
|
|
43
|
+
const stringArrayResponse = (credential, key, operation) => {
|
|
44
|
+
const value = credential.response[key];
|
|
45
|
+
return value === undefined
|
|
46
|
+
? Effect.succeed(undefined)
|
|
47
|
+
: Array.isArray(value) && value.every((item) => typeof item === "string")
|
|
48
|
+
? Effect.succeed(value)
|
|
49
|
+
: Effect.fail(verifierError(operation, `Invalid ${key}`));
|
|
50
|
+
};
|
|
51
|
+
const registrationResponseForSimpleWebAuthn = (credential) => Effect.gen(function* () {
|
|
52
|
+
const operation = "verify-registration";
|
|
53
|
+
const clientDataJSON = yield* responseString(credential, "clientDataJSON", operation);
|
|
54
|
+
const attestationObject = yield* responseString(credential, "attestationObject", operation);
|
|
55
|
+
const attachment = yield* passkeyAuthenticatorAttachment(credential, operation);
|
|
56
|
+
const transports = yield* stringArrayResponse(credential, "transports", operation);
|
|
57
|
+
return {
|
|
58
|
+
id: credential.id,
|
|
59
|
+
rawId: credential.rawId ?? credential.id,
|
|
60
|
+
type: credential.type,
|
|
61
|
+
response: {
|
|
62
|
+
clientDataJSON,
|
|
63
|
+
attestationObject,
|
|
64
|
+
...(transports === undefined
|
|
65
|
+
? {}
|
|
66
|
+
: {
|
|
67
|
+
transports: transports,
|
|
68
|
+
}),
|
|
69
|
+
},
|
|
70
|
+
...(attachment === undefined ? {} : { authenticatorAttachment: attachment }),
|
|
71
|
+
clientExtensionResults: credential.clientExtensionResults ?? {},
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
const authenticationResponseForSimpleWebAuthn = (credential) => Effect.gen(function* () {
|
|
75
|
+
const operation = "verify-authentication";
|
|
76
|
+
const clientDataJSON = yield* responseString(credential, "clientDataJSON", operation);
|
|
77
|
+
const authenticatorData = yield* responseString(credential, "authenticatorData", operation);
|
|
78
|
+
const signature = yield* responseString(credential, "signature", operation);
|
|
79
|
+
const userHandle = yield* optionalResponseString(credential, "userHandle", operation);
|
|
80
|
+
const attachment = yield* passkeyAuthenticatorAttachment(credential, operation);
|
|
81
|
+
return {
|
|
82
|
+
id: credential.id,
|
|
83
|
+
rawId: credential.rawId ?? credential.id,
|
|
84
|
+
type: credential.type,
|
|
85
|
+
response: {
|
|
86
|
+
clientDataJSON,
|
|
87
|
+
authenticatorData,
|
|
88
|
+
signature,
|
|
89
|
+
...(userHandle === undefined ? {} : { userHandle }),
|
|
90
|
+
},
|
|
91
|
+
...(attachment === undefined ? {} : { authenticatorAttachment: attachment }),
|
|
92
|
+
clientExtensionResults: credential.clientExtensionResults ?? {},
|
|
93
|
+
};
|
|
94
|
+
});
|
|
95
|
+
const credentialForSimpleWebAuthn = (credential) => decodeBase64UrlBytes(credential.publicKey, "verify-authentication").pipe(Effect.map((publicKey) => ({
|
|
96
|
+
id: credential.credentialId,
|
|
97
|
+
publicKey: new Uint8Array(publicKey),
|
|
98
|
+
counter: credential.signCount,
|
|
99
|
+
...(credential.transports === undefined
|
|
100
|
+
? {}
|
|
101
|
+
: {
|
|
102
|
+
transports: credential.transports,
|
|
103
|
+
}),
|
|
104
|
+
})));
|
|
105
|
+
export const makeSimpleWebAuthnPasskeyVerifier = (options = {}) => {
|
|
106
|
+
const verifyRegistrationResponse = options.verifyRegistrationResponse ?? simpleWebAuthnVerifyRegistrationResponse;
|
|
107
|
+
const verifyAuthenticationResponse = options.verifyAuthenticationResponse ?? simpleWebAuthnVerifyAuthenticationResponse;
|
|
108
|
+
return PasskeyVerifier.make({
|
|
109
|
+
readAuthenticationCredentialId: ({ response }) => Effect.succeed(PasskeyCredentialId(response.id)),
|
|
110
|
+
verifyRegistration: (input) => Effect.gen(function* () {
|
|
111
|
+
const response = yield* registrationResponseForSimpleWebAuthn(input.response);
|
|
112
|
+
const challenge = yield* clientDataChallenge(response.response.clientDataJSON, "verify-registration");
|
|
113
|
+
const result = yield* Effect.tryPromise({
|
|
114
|
+
try: () => verifyRegistrationResponse({
|
|
115
|
+
response,
|
|
116
|
+
expectedChallenge: challenge,
|
|
117
|
+
expectedOrigin: expectedOrigin(input.expectedOrigin),
|
|
118
|
+
expectedRPID: input.relyingPartyId,
|
|
119
|
+
...(input.requireUserVerification === undefined
|
|
120
|
+
? {}
|
|
121
|
+
: { requireUserVerification: input.requireUserVerification }),
|
|
122
|
+
}),
|
|
123
|
+
catch: (cause) => verifierError("verify-registration", "Failed to verify registration response", cause),
|
|
124
|
+
});
|
|
125
|
+
const info = result.registrationInfo;
|
|
126
|
+
if (!result.verified || info === undefined) {
|
|
127
|
+
return yield* verifierError("verify-registration", "Passkey registration was not verified");
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
challenge,
|
|
131
|
+
credentialId: PasskeyCredentialId(info.credential.id),
|
|
132
|
+
publicKey: Encoding.encodeBase64Url(info.credential.publicKey),
|
|
133
|
+
signCount: info.credential.counter,
|
|
134
|
+
...(info.credential.transports === undefined
|
|
135
|
+
? {}
|
|
136
|
+
: { transports: info.credential.transports }),
|
|
137
|
+
backedUp: info.credentialBackedUp,
|
|
138
|
+
metadata: {
|
|
139
|
+
credentialDeviceType: info.credentialDeviceType,
|
|
140
|
+
origin: info.origin,
|
|
141
|
+
...(info.rpID === undefined ? {} : { rpId: info.rpID }),
|
|
142
|
+
},
|
|
143
|
+
};
|
|
144
|
+
}),
|
|
145
|
+
verifyAuthentication: (input) => Effect.gen(function* () {
|
|
146
|
+
const response = yield* authenticationResponseForSimpleWebAuthn(input.response);
|
|
147
|
+
const challenge = yield* clientDataChallenge(response.response.clientDataJSON, "verify-authentication");
|
|
148
|
+
const credential = yield* credentialForSimpleWebAuthn(input.credential);
|
|
149
|
+
const result = yield* Effect.tryPromise({
|
|
150
|
+
try: () => verifyAuthenticationResponse({
|
|
151
|
+
response,
|
|
152
|
+
expectedChallenge: challenge,
|
|
153
|
+
expectedOrigin: expectedOrigin(input.expectedOrigin),
|
|
154
|
+
expectedRPID: input.relyingPartyId,
|
|
155
|
+
credential,
|
|
156
|
+
...(input.requireUserVerification === undefined
|
|
157
|
+
? {}
|
|
158
|
+
: { requireUserVerification: input.requireUserVerification }),
|
|
159
|
+
}),
|
|
160
|
+
catch: (cause) => verifierError("verify-authentication", "Failed to verify authentication response", cause),
|
|
161
|
+
});
|
|
162
|
+
const info = result.authenticationInfo;
|
|
163
|
+
if (!result.verified) {
|
|
164
|
+
return yield* verifierError("verify-authentication", "Passkey authentication was not verified");
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
challenge,
|
|
168
|
+
credentialId: PasskeyCredentialId(info.credentialID),
|
|
169
|
+
newSignCount: info.newCounter,
|
|
170
|
+
userVerified: info.userVerified,
|
|
171
|
+
metadata: {
|
|
172
|
+
credentialDeviceType: info.credentialDeviceType,
|
|
173
|
+
origin: info.origin,
|
|
174
|
+
rpId: info.rpID,
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
}),
|
|
178
|
+
});
|
|
179
|
+
};
|
|
180
|
+
export const SimpleWebAuthnPasskeyVerifierLive = Layer.succeed(PasskeyVerifier, makeSimpleWebAuthnPasskeyVerifier());
|
|
181
|
+
//# sourceMappingURL=PasskeySimpleWebAuthn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasskeySimpleWebAuthn.js","sourceRoot":"","sources":["../src/PasskeySimpleWebAuthn.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-auth/core",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.7",
|
|
4
4
|
"description": "Composable Effect-first authentication primitives.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"files": [
|
|
@@ -157,6 +157,10 @@
|
|
|
157
157
|
"types": "./dist/Passkey.d.ts",
|
|
158
158
|
"default": "./dist/Passkey.js"
|
|
159
159
|
},
|
|
160
|
+
"./PasskeySimpleWebAuthn": {
|
|
161
|
+
"types": "./dist/PasskeySimpleWebAuthn.d.ts",
|
|
162
|
+
"default": "./dist/PasskeySimpleWebAuthn.js"
|
|
163
|
+
},
|
|
160
164
|
"./Sessions": {
|
|
161
165
|
"types": "./dist/Sessions.d.ts",
|
|
162
166
|
"default": "./dist/Sessions.js"
|
|
@@ -201,12 +205,16 @@
|
|
|
201
205
|
"type-test": "tsc -p tsconfig.type-tests.json --pretty false"
|
|
202
206
|
},
|
|
203
207
|
"peerDependencies": {
|
|
208
|
+
"@simplewebauthn/server": "^13.3.1",
|
|
204
209
|
"alchemy": ">=2.0.0-beta.44 <3",
|
|
205
210
|
"effect": "^4.0.0-beta.67",
|
|
206
211
|
"effect-qb": "4.0.0-beta.66",
|
|
207
212
|
"kysely": "^0.29.2"
|
|
208
213
|
},
|
|
209
214
|
"peerDependenciesMeta": {
|
|
215
|
+
"@simplewebauthn/server": {
|
|
216
|
+
"optional": true
|
|
217
|
+
},
|
|
210
218
|
"alchemy": {
|
|
211
219
|
"optional": true
|
|
212
220
|
},
|