@schemavaults/auth-client-sdk 0.5.6 → 0.7.5
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/dist/auth-client.d.ts +1 -1
- package/dist/auth-client.js +65 -502
- package/dist/auth-client.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/assert-http-only-refresh-token-has-accompanying-expiry-marker.d.ts +2 -0
- package/dist/lib/assert-http-only-refresh-token-has-accompanying-expiry-marker.js +9 -0
- package/dist/lib/assert-http-only-refresh-token-has-accompanying-expiry-marker.js.map +1 -0
- package/dist/lib/authenticate-url-encoder.js +12 -1
- package/dist/lib/authenticate-url-encoder.js.map +1 -1
- package/dist/lib/authenticate-with-redirect.d.ts +13 -0
- package/dist/lib/authenticate-with-redirect.js +108 -0
- package/dist/lib/authenticate-with-redirect.js.map +1 -0
- package/dist/lib/check-if-authenticated-with-server.d.ts +8 -0
- package/dist/lib/check-if-authenticated-with-server.js +37 -0
- package/dist/lib/check-if-authenticated-with-server.js.map +1 -0
- package/dist/lib/exchange-auth-tokens.d.ts +16 -0
- package/dist/lib/exchange-auth-tokens.js +121 -0
- package/dist/lib/exchange-auth-tokens.js.map +1 -0
- package/dist/lib/handle-successful-authentication.d.ts +21 -0
- package/dist/lib/handle-successful-authentication.js +259 -0
- package/dist/lib/handle-successful-authentication.js.map +1 -0
- package/dist/lib/send-authenticate-request.js +15 -7
- package/dist/lib/send-authenticate-request.js.map +1 -1
- package/dist/types/ISchemaVaultsAuthClient.d.ts +9 -0
- package/dist/types/ISchemaVaultsAuthClientAdapter.d.ts +2 -6
- package/package.json +3 -3
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { authorizationCodePOSTbody, PKCE_ProofKeyManager, requestTokensResultSchema, } from "@schemavaults/auth-common";
|
|
2
|
+
import debugPrintTokensAsTable from "./debugPrintTokensAsTable";
|
|
3
|
+
import debugPrintUserDataAsTable from "./debugPrintUserDataAsTable";
|
|
4
|
+
import assertHttpOnlyRefreshTokenCookieHasAccompanyingMarkerCookie from "./assert-http-only-refresh-token-has-accompanying-expiry-marker";
|
|
5
|
+
export async function handleSuccessfulAuthentication({ authorization_code, challenge_time, code_verifier, loadCodeVerifier, debug, environment, adapter, auth_server_uri, client_app_id, defaultTokenAudiences, storeRefreshToken, storeUserData, storeMultipleAccessTokens, triggerAuthStateChanged, }) {
|
|
6
|
+
if (debug) {
|
|
7
|
+
console.log("[SchemaVaultsAuthClient::handleSuccessfulAuthentication]" +
|
|
8
|
+
" " +
|
|
9
|
+
"Handling successful authentication...");
|
|
10
|
+
}
|
|
11
|
+
if (!authorization_code) {
|
|
12
|
+
throw new Error("Missing authorization code");
|
|
13
|
+
}
|
|
14
|
+
else if (typeof authorization_code !== "string" ||
|
|
15
|
+
authorization_code.length === 0) {
|
|
16
|
+
throw new TypeError("Expected 'authorization_code' to be a non-empty string!");
|
|
17
|
+
}
|
|
18
|
+
if (!challenge_time || typeof challenge_time !== "number") {
|
|
19
|
+
throw new Error("Invalid challenge_time");
|
|
20
|
+
}
|
|
21
|
+
const time_elapsed_since_challenge_time = Date.now() - challenge_time;
|
|
22
|
+
if (time_elapsed_since_challenge_time <= 0) {
|
|
23
|
+
throw new Error("Expected challenge time to be in the past");
|
|
24
|
+
}
|
|
25
|
+
if (time_elapsed_since_challenge_time > PKCE_ProofKeyManager.max_age) {
|
|
26
|
+
console.error("[SchemaVaultsAuthClient::handleSuccessfulAuthentication] Code verifier has expired based on challenge time");
|
|
27
|
+
if (debug) {
|
|
28
|
+
try {
|
|
29
|
+
console.table({
|
|
30
|
+
challenge_time,
|
|
31
|
+
current_time: Date.now(),
|
|
32
|
+
time_elapsed: time_elapsed_since_challenge_time,
|
|
33
|
+
max_age: PKCE_ProofKeyManager.max_age,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
void e; /** no-op */
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
throw new Error("Code verifier has expired");
|
|
41
|
+
}
|
|
42
|
+
// The auth server will redirect the user back to the client
|
|
43
|
+
// The client will have a code in the query parameters
|
|
44
|
+
// The client will use the code to get an access token
|
|
45
|
+
// PKCE: The client will use the code_verifier to prove that it is the same client
|
|
46
|
+
if (debug) {
|
|
47
|
+
console.log("[SchemaVaultsAuthClient] " +
|
|
48
|
+
"Attempting to load code verifier to prove authorization code validity...");
|
|
49
|
+
}
|
|
50
|
+
const cached_code_verifier = code_verifier ?? loadCodeVerifier(challenge_time);
|
|
51
|
+
if (!cached_code_verifier) {
|
|
52
|
+
const errorMessage = `[SchemaVaultsAuthClient] Failed to load code_verifier at challenge_time=${challenge_time}`;
|
|
53
|
+
console.error(errorMessage);
|
|
54
|
+
throw new Error(errorMessage);
|
|
55
|
+
}
|
|
56
|
+
cached_code_verifier;
|
|
57
|
+
const shouldClearCodeVerifierAfterLoad = environment !== "development";
|
|
58
|
+
if (shouldClearCodeVerifierAfterLoad) {
|
|
59
|
+
// Clear the code verifier from storage
|
|
60
|
+
try {
|
|
61
|
+
if (debug) {
|
|
62
|
+
console.log("[SchemaVaultsAuthClient] " +
|
|
63
|
+
"Code verifier was retrieved from storage, now clearing code verifier at challenge time: ", challenge_time);
|
|
64
|
+
}
|
|
65
|
+
adapter.clearCodeVerifier(challenge_time);
|
|
66
|
+
if (debug) {
|
|
67
|
+
console.log("[SchemaVaultsAuthClient] Cleared code verifiers from storage");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch (e) {
|
|
71
|
+
console.error("[SchemaVaultsAuthClient] Failed to clear code verifiers: ", e);
|
|
72
|
+
if (debug) {
|
|
73
|
+
throw new Error("Failed to clear code verifiers");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
if (debug) {
|
|
79
|
+
console.log("[SchemaVaultsAuthClient] Not attempting to clear code verifiers in this app environment...");
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Get the endpoint to exchange the authorization code for an access token
|
|
83
|
+
// https://datatracker.ietf.org/doc/html/rfc7636#section-4.5
|
|
84
|
+
const authorization_code_token_endpoint = `${auth_server_uri}/api/auth/token/authorization_code/${client_app_id}`;
|
|
85
|
+
if (debug) {
|
|
86
|
+
console.log("[SchemaVaultsAuthClient::handleSuccessfulAuthentication()] Token Endpoint: ", authorization_code_token_endpoint);
|
|
87
|
+
}
|
|
88
|
+
let audience = defaultTokenAudiences;
|
|
89
|
+
if (debug) {
|
|
90
|
+
console.log("[SchemaVaultsAuthClient::handleSuccessfulAuthentication()] Initial access token audience(s): ", audience);
|
|
91
|
+
}
|
|
92
|
+
if (!audience || (Array.isArray(audience) && audience.length === 0)) {
|
|
93
|
+
console.warn("[SchemaVaultsAuthClient::handleSuccessfulAuthentication()] No access token audience(s) set");
|
|
94
|
+
audience = [];
|
|
95
|
+
}
|
|
96
|
+
// Exchange the authorization code for an access token
|
|
97
|
+
let request_body;
|
|
98
|
+
try {
|
|
99
|
+
const parsed = await authorizationCodePOSTbody.safeParseAsync({
|
|
100
|
+
grant_type: "authorization_code",
|
|
101
|
+
code: authorization_code,
|
|
102
|
+
code_verifier: cached_code_verifier,
|
|
103
|
+
client_app_id,
|
|
104
|
+
audience,
|
|
105
|
+
challenge_time,
|
|
106
|
+
});
|
|
107
|
+
if (!parsed.success)
|
|
108
|
+
throw parsed.error;
|
|
109
|
+
request_body = parsed.data;
|
|
110
|
+
}
|
|
111
|
+
catch (e) {
|
|
112
|
+
console.error(e);
|
|
113
|
+
throw new Error("Failed to prepare request body for authorization grant request");
|
|
114
|
+
}
|
|
115
|
+
// Send the request to the auth server
|
|
116
|
+
// The auth server will hash the code_verifier and compare it to the code_challenge
|
|
117
|
+
let response;
|
|
118
|
+
try {
|
|
119
|
+
if (debug) {
|
|
120
|
+
console.log(`[SchemaVaultsAuthClient] Exchanging authorization code for access token; sending req body to token endpoint: "${authorization_code_token_endpoint}"`, request_body);
|
|
121
|
+
}
|
|
122
|
+
response = await adapter.fetch(authorization_code_token_endpoint, {
|
|
123
|
+
body: JSON.stringify(request_body),
|
|
124
|
+
method: "POST",
|
|
125
|
+
credentials: "include",
|
|
126
|
+
headers: {
|
|
127
|
+
"Content-Type": "application/json",
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
if (debug) {
|
|
131
|
+
console.log("[SchemaVaultsAuthClient] Received response in attempt to exchange authorization code for access token: ", response);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch (e) {
|
|
135
|
+
console.error("Failed to exchange authorization code for access token:", e);
|
|
136
|
+
throw new Error("Failed to exchange authorization code for access token");
|
|
137
|
+
}
|
|
138
|
+
if (!response || !response.ok || response.status !== 200) {
|
|
139
|
+
const errorMsg = `Failed to exchange authorization code for access token (status code: ${response.status})`;
|
|
140
|
+
console.error(errorMsg);
|
|
141
|
+
throw new Error(errorMsg);
|
|
142
|
+
}
|
|
143
|
+
if (debug) {
|
|
144
|
+
console.log("[SchemaVaultsAuthClient::handleSuccessfulAuthentication()] " +
|
|
145
|
+
"Successfully exchanged authorization code for token(s)");
|
|
146
|
+
}
|
|
147
|
+
let access_tokens;
|
|
148
|
+
let refresh_token;
|
|
149
|
+
let user;
|
|
150
|
+
try {
|
|
151
|
+
const tokens_data = await requestTokensResultSchema.safeParseAsync(await response.json());
|
|
152
|
+
if (!tokens_data.success) {
|
|
153
|
+
console.error("[SchemaVaultsAuthClient::handleSuccessfulAuthentication()] " +
|
|
154
|
+
"Failed to parse tokens from auth server response:", tokens_data.error);
|
|
155
|
+
throw new Error("Failed to parse tokens from auth server response");
|
|
156
|
+
}
|
|
157
|
+
else if (!tokens_data.data.success) {
|
|
158
|
+
throw new Error(tokens_data.data.message);
|
|
159
|
+
}
|
|
160
|
+
if (debug) {
|
|
161
|
+
console.log("[SchemaVaultsAuthClient::handleSuccessfulAuthentication()] Success response data: ", tokens_data.data);
|
|
162
|
+
}
|
|
163
|
+
const { tokens, userData } = tokens_data.data;
|
|
164
|
+
if (!tokens) {
|
|
165
|
+
console.error("Did not receive tokens in response from auth server");
|
|
166
|
+
throw new Error("Did not receive tokens in response from auth server");
|
|
167
|
+
}
|
|
168
|
+
if (!tokens.access) {
|
|
169
|
+
console.error("Did not receive any access tokens in response from auth server");
|
|
170
|
+
throw new Error("Did not receive any access tokens in response from auth server");
|
|
171
|
+
}
|
|
172
|
+
if (!tokens.refresh ||
|
|
173
|
+
(typeof tokens.refresh !== "object" && typeof tokens.refresh !== "string")) {
|
|
174
|
+
console.error("Did not receive (valid) refresh token in response from auth server.", `Type: ${typeof tokens.refresh}`, tokens.refresh);
|
|
175
|
+
throw new Error("Did not receive refresh token in response from auth server");
|
|
176
|
+
}
|
|
177
|
+
if (debug) {
|
|
178
|
+
debugPrintTokensAsTable(tokens);
|
|
179
|
+
}
|
|
180
|
+
access_tokens = tokens.access;
|
|
181
|
+
refresh_token = tokens.refresh;
|
|
182
|
+
if (!userData) {
|
|
183
|
+
console.error("Did not receive user data in response from auth server");
|
|
184
|
+
throw new Error("Did not receive user data in response from auth server");
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
if (debug) {
|
|
188
|
+
debugPrintUserDataAsTable(userData);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
user = userData;
|
|
192
|
+
}
|
|
193
|
+
catch (e) {
|
|
194
|
+
let errorMessage = "Unknown error";
|
|
195
|
+
if (e instanceof Error) {
|
|
196
|
+
errorMessage = e.message;
|
|
197
|
+
}
|
|
198
|
+
console.error("Failed to parse tokens response: ", errorMessage);
|
|
199
|
+
throw new Error(`Failed to parse tokens response: ${errorMessage}`);
|
|
200
|
+
}
|
|
201
|
+
// Store refresh token
|
|
202
|
+
const doStoreReceivedRefreshToken = () => {
|
|
203
|
+
if (typeof refresh_token === "object" && refresh_token.type === "refresh") {
|
|
204
|
+
try {
|
|
205
|
+
if (debug) {
|
|
206
|
+
console.log("[SchemaVaultsAuthClient] Storing refresh token...");
|
|
207
|
+
}
|
|
208
|
+
storeRefreshToken(refresh_token);
|
|
209
|
+
if (debug) {
|
|
210
|
+
console.log("[SchemaVaultsAuthClient] Stored refresh token!");
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
catch (e) {
|
|
214
|
+
console.error(e);
|
|
215
|
+
throw new Error("Failed to store refresh token");
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
else if (typeof refresh_token === "string" &&
|
|
219
|
+
refresh_token === "AS_HTTP_ONLY_COOKIE") {
|
|
220
|
+
assertHttpOnlyRefreshTokenCookieHasAccompanyingMarkerCookie(adapter);
|
|
221
|
+
if (debug) {
|
|
222
|
+
console.log("[SchemaVaultsAuthClient] Detected HTTP-only cookie refresh token (accompanying-cookie).");
|
|
223
|
+
}
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
throw new TypeError("Invalid type for refresh token!");
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
doStoreReceivedRefreshToken();
|
|
231
|
+
// Store access tokens
|
|
232
|
+
storeMultipleAccessTokens(access_tokens);
|
|
233
|
+
try {
|
|
234
|
+
if (debug) {
|
|
235
|
+
console.log("[SchemaVaultsAuthClient] Storing user data...");
|
|
236
|
+
}
|
|
237
|
+
storeUserData(user);
|
|
238
|
+
if (debug) {
|
|
239
|
+
console.log("[SchemaVaultsAuthClient] Stored user data.");
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
catch (e) {
|
|
243
|
+
console.error("Failed to store user data: ", e);
|
|
244
|
+
throw new Error("Failed to store user data");
|
|
245
|
+
}
|
|
246
|
+
if (debug) {
|
|
247
|
+
console.log("[SchemaVaultsAuthClient] Triggering auth state changed!");
|
|
248
|
+
}
|
|
249
|
+
triggerAuthStateChanged();
|
|
250
|
+
if (debug) {
|
|
251
|
+
console.log("[SchemaVaultsAuthClient] Finished triggering auth state change.");
|
|
252
|
+
}
|
|
253
|
+
if (debug) {
|
|
254
|
+
console.log("[SchemaVaultsAuthClient] handleSuccessfulAuthentication success!");
|
|
255
|
+
}
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
export default handleSuccessfulAuthentication;
|
|
259
|
+
//# sourceMappingURL=handle-successful-authentication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-successful-authentication.js","sourceRoot":"","sources":["../../src/lib/handle-successful-authentication.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,7 +64,14 @@ export async function sendAuthenticateRequest(opts) {
|
|
|
64
64
|
if (env === "development") {
|
|
65
65
|
console.log("[sendAuthenticateRequest] Sending POST request via adapter");
|
|
66
66
|
}
|
|
67
|
-
const authentication_request_response = await adapter.
|
|
67
|
+
const authentication_request_response = await adapter.fetch(`/api/auth/${authentication_type}`, {
|
|
68
|
+
body: JSON.stringify(auth_request_body),
|
|
69
|
+
method: "POST",
|
|
70
|
+
credentials: "same-origin",
|
|
71
|
+
headers: {
|
|
72
|
+
"Content-Type": "application/json",
|
|
73
|
+
},
|
|
74
|
+
});
|
|
68
75
|
if (!authentication_request_response) {
|
|
69
76
|
throw new Error("No response received from client auth adapter HTTP client");
|
|
70
77
|
}
|
|
@@ -77,10 +84,12 @@ export async function sendAuthenticateRequest(opts) {
|
|
|
77
84
|
if (typeof response.status === "number" && response.status >= 500) {
|
|
78
85
|
let errorMsg = "Unknown server-side error handling authentication request :(";
|
|
79
86
|
try {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
87
|
+
const error_response_body = await response.json();
|
|
88
|
+
if (typeof error_response_body === "object" &&
|
|
89
|
+
error_response_body !== null) {
|
|
90
|
+
if ("message" in error_response_body &&
|
|
91
|
+
typeof error_response_body.message === "string") {
|
|
92
|
+
errorMsg = error_response_body.message;
|
|
84
93
|
}
|
|
85
94
|
}
|
|
86
95
|
}
|
|
@@ -109,8 +118,7 @@ export async function sendAuthenticateRequest(opts) {
|
|
|
109
118
|
}
|
|
110
119
|
throw new Error(`Failed to authenticate (response status ${response.status})`);
|
|
111
120
|
}
|
|
112
|
-
const
|
|
113
|
-
const parsed_auth_response = await authenticateResultSchema.safeParseAsync(response_body_json);
|
|
121
|
+
const parsed_auth_response = await authenticateResultSchema.safeParseAsync(await response.json());
|
|
114
122
|
if (!parsed_auth_response.success) {
|
|
115
123
|
throw new Error(parsed_auth_response.error.errors.join(", "));
|
|
116
124
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-authenticate-request.js","sourceRoot":"","sources":["../../src/lib/send-authenticate-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"send-authenticate-request.js","sourceRoot":"","sources":["../../src/lib/send-authenticate-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,8 +49,17 @@ export interface ISchemaVaultsAuthClient {
|
|
|
49
49
|
/**
|
|
50
50
|
* @name isAuthenticated
|
|
51
51
|
* @returns Getter that returns true if there is a user currently signed in, false otherwise
|
|
52
|
+
* @description This works off the client's assumption that it is/isn't authenticated. Great for a quick 'am i logged in?' check.
|
|
53
|
+
* @see checkIfAuthenticatedWithServer
|
|
52
54
|
*/
|
|
53
55
|
isAuthenticated: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* @name checkIfAuthenticatedWithServer
|
|
58
|
+
* @returns A promise resolving with the current user's data (if authenticated), or null if not loggged in
|
|
59
|
+
* @description Sends a request to the auth server to check if the client is currently authenticated
|
|
60
|
+
* @see isAuthenticated
|
|
61
|
+
*/
|
|
62
|
+
checkIfAuthenticatedWithServer: () => Promise<UserData | null>;
|
|
54
63
|
/**
|
|
55
64
|
* Return true if feature is supported by this auth client / adapter
|
|
56
65
|
* @param feature_name A feature name, e.g. 'http-only-refresh-token'
|
|
@@ -47,13 +47,9 @@ interface AuthClientAuthTokensActions {
|
|
|
47
47
|
clearAccessToken: (token_id: string) => void;
|
|
48
48
|
clearAccessTokens: () => void;
|
|
49
49
|
}
|
|
50
|
-
export interface IAuthClientPOSTResultType<T extends object> {
|
|
51
|
-
status: number;
|
|
52
|
-
ok: boolean;
|
|
53
|
-
data: T;
|
|
54
|
-
}
|
|
55
50
|
interface AuthClientNetworkActions {
|
|
56
|
-
|
|
51
|
+
fetch: (url: string, init: RequestInit | undefined) => Promise<Response>;
|
|
52
|
+
relativeUrlToAbsoluteUrl: (relative_url: string) => string;
|
|
57
53
|
}
|
|
58
54
|
export interface ISchemaVaultsAuthClientAdapter extends AuthClientCodeVerifierActions, AuthClientUserDataActions, AuthClientAuthTokensActions, AuthClientNetworkActions {
|
|
59
55
|
redirect: (uri: string) => void | Promise<void>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@schemavaults/auth-client-sdk",
|
|
3
3
|
"description": "TypeScript SDK for interacting with SchemaVaults Auth server or protected resources",
|
|
4
|
-
"version": "0.5
|
|
4
|
+
"version": "0.7.5",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"private": false,
|
|
7
7
|
"repository": {
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"types": "dist/index.d.ts",
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"zod": "3.23.8",
|
|
17
|
-
"@schemavaults/auth-common": "0.8.
|
|
18
|
-
"@schemavaults/app-definitions": "0.6.
|
|
17
|
+
"@schemavaults/auth-common": "0.8.6",
|
|
18
|
+
"@schemavaults/app-definitions": "0.6.14"
|
|
19
19
|
},
|
|
20
20
|
"scripts": {
|
|
21
21
|
"build": "tsc --project tsconfig.json && tsc-alias --project tsconfig.json",
|