@faskai/svcs-commons 0.0.0-alpha.2 → 0.0.0-alpha.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/dist/auth/auth.guard.d.ts +2 -0
- package/dist/auth/auth.guard.js +38 -20
- package/dist/auth/auth.guard.js.map +1 -1
- package/dist/auth/clerk-auth.d.ts +0 -1
- package/dist/auth/clerk-auth.js +0 -8
- package/dist/auth/clerk-auth.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -10,5 +10,7 @@ export declare class AuthGuard implements CanActivate {
|
|
|
10
10
|
private readonly cls;
|
|
11
11
|
constructor(reflector: Reflector, firebaseAuth: FirebaseAuth, clerkAuth: ClerkAuth, cls: ClsService);
|
|
12
12
|
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
13
|
+
private setAuthContext;
|
|
14
|
+
private validateWorkspaceId;
|
|
13
15
|
isAllowed(context: ExecutionContext): Promise<boolean>;
|
|
14
16
|
}
|
package/dist/auth/auth.guard.js
CHANGED
|
@@ -25,6 +25,36 @@ let AuthGuard = class AuthGuard {
|
|
|
25
25
|
async canActivate(context) {
|
|
26
26
|
return this.isAllowed(context);
|
|
27
27
|
}
|
|
28
|
+
setAuthContext(request, userId, workspaceId, authProvider, token) {
|
|
29
|
+
this.validateWorkspaceId(request, workspaceId);
|
|
30
|
+
this.cls.set('userId', userId);
|
|
31
|
+
this.cls.set('workspaceId', workspaceId);
|
|
32
|
+
this.cls.set('authProvider', authProvider);
|
|
33
|
+
if (token) {
|
|
34
|
+
this.cls.set('userToken', token);
|
|
35
|
+
}
|
|
36
|
+
if (!request.query['workspace-id']) {
|
|
37
|
+
request.query['workspace-id'] = workspaceId;
|
|
38
|
+
}
|
|
39
|
+
if (!request.headers['x-workspace-id']) {
|
|
40
|
+
request.headers['x-workspace-id'] = workspaceId;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
validateWorkspaceId(request, workspaceId) {
|
|
44
|
+
const sources = [
|
|
45
|
+
request.query?.['workspace-id'],
|
|
46
|
+
request.headers?.['x-workspace-id'],
|
|
47
|
+
].filter(Boolean);
|
|
48
|
+
for (const src of sources) {
|
|
49
|
+
if (src !== src.toLowerCase()) {
|
|
50
|
+
throw new common_1.BadRequestException('workspace-id must be lowercase');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const unique = new Set(sources);
|
|
54
|
+
if (unique.size > 1) {
|
|
55
|
+
throw new common_1.BadRequestException('workspace-id mismatch across query and header');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
28
58
|
async isAllowed(context) {
|
|
29
59
|
const request = context.switchToHttp().getRequest();
|
|
30
60
|
const isPublic = this.reflector.get('isPublic', context.getHandler());
|
|
@@ -38,14 +68,15 @@ let AuthGuard = class AuthGuard {
|
|
|
38
68
|
return true;
|
|
39
69
|
}
|
|
40
70
|
const authHeader = request.headers['authorization'];
|
|
41
|
-
if (!authHeader) {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
if (!authHeader.startsWith('Bearer ')) {
|
|
71
|
+
if (!authHeader?.startsWith('Bearer ')) {
|
|
45
72
|
return false;
|
|
46
73
|
}
|
|
47
74
|
const token = authHeader.split(' ')[1];
|
|
48
75
|
if (token === process.env.API_KEY) {
|
|
76
|
+
const authProvider = request.headers['x-auth-provider'] || 'api-key';
|
|
77
|
+
const workspaceId = request.headers['x-workspace-id'];
|
|
78
|
+
const userId = request.headers['x-user-id'];
|
|
79
|
+
this.setAuthContext(request, userId, workspaceId, authProvider);
|
|
49
80
|
return true;
|
|
50
81
|
}
|
|
51
82
|
const authProvider = request.headers['x-auth-provider'];
|
|
@@ -55,27 +86,14 @@ let AuthGuard = class AuthGuard {
|
|
|
55
86
|
if (authProvider === 'clerk') {
|
|
56
87
|
const user = await this.clerkAuth.validateClerkToken(token);
|
|
57
88
|
userId = user.uid;
|
|
58
|
-
workspaceId = user.
|
|
59
|
-
this.cls.set('userId', userId);
|
|
60
|
-
this.cls.set('workspaceId', workspaceId);
|
|
61
|
-
this.cls.set('userToken', token);
|
|
62
|
-
this.cls.set('authProvider', 'clerk');
|
|
89
|
+
workspaceId = user.uid.toLowerCase();
|
|
63
90
|
}
|
|
64
91
|
else {
|
|
65
92
|
const user = await this.firebaseAuth.validateFirebaseToken(token);
|
|
66
93
|
userId = user.uid;
|
|
67
|
-
workspaceId = user.
|
|
68
|
-
this.cls.set('userId', userId);
|
|
69
|
-
this.cls.set('workspaceId', workspaceId);
|
|
70
|
-
this.cls.set('userToken', token);
|
|
71
|
-
this.cls.set('authProvider', 'firebase');
|
|
72
|
-
}
|
|
73
|
-
if (!request.query['workspace-id']) {
|
|
74
|
-
request.query['workspace-id'] = workspaceId;
|
|
75
|
-
}
|
|
76
|
-
if (request.params && !request.params['workspace-id']) {
|
|
77
|
-
request.params['workspace-id'] = workspaceId;
|
|
94
|
+
workspaceId = user.uid.toLowerCase();
|
|
78
95
|
}
|
|
96
|
+
this.setAuthContext(request, userId, workspaceId, authProvider || 'firebase', token);
|
|
79
97
|
return true;
|
|
80
98
|
}
|
|
81
99
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../../src/auth/auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../../src/auth/auth.guard.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/clerk-auth.js
CHANGED
|
@@ -39,16 +39,8 @@ let ClerkAuth = class ClerkAuth {
|
|
|
39
39
|
throw new Error('Token is not authenticated');
|
|
40
40
|
}
|
|
41
41
|
const auth = requestState.toAuth();
|
|
42
|
-
let email;
|
|
43
|
-
try {
|
|
44
|
-
const user = await this.clerkClient.users.getUser(auth.userId);
|
|
45
|
-
email = user.emailAddresses?.[0]?.emailAddress;
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
}
|
|
49
42
|
return {
|
|
50
43
|
uid: auth.userId,
|
|
51
|
-
email,
|
|
52
44
|
sessionId: auth.sessionId,
|
|
53
45
|
orgId: auth.orgId,
|
|
54
46
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clerk-auth.js","sourceRoot":"","sources":["../../src/auth/clerk-auth.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,4CAAmD;AAG5C,IAAM,SAAS,GAAf,MAAM,SAAS;IAGpB;QACE,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,GAAG,IAAA,2BAAiB,EAAC;gBACnC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;gBACvC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAa;QACpC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;YAEzC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,kBAAkB,EAAE;gBAClD,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,KAAK,EAAE;iBACjC;aACF,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAC7D,WAAW,EACX;gBACE,MAAM;aACP,CACF,CAAC;YAEF,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;YAEnC,
|
|
1
|
+
{"version":3,"file":"clerk-auth.js","sourceRoot":"","sources":["../../src/auth/clerk-auth.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,4CAAmD;AAG5C,IAAM,SAAS,GAAf,MAAM,SAAS;IAGpB;QACE,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,GAAG,IAAA,2BAAiB,EAAC;gBACnC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;gBACvC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,iCAAiC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAa;QACpC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;YAEzC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,kBAAkB,EAAE;gBAClD,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,KAAK,EAAE;iBACjC;aACF,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAC7D,WAAW,EACX;gBACE,MAAM;aACP,CACF,CAAC;YAEF,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;YAEnC,OAAO;gBACL,GAAG,EAAE,IAAI,CAAC,MAAM;gBAChB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;CACF,CAAA;AAhDY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;;GACA,SAAS,CAgDrB"}
|