Skip to content

Commit ad6629a

Browse files
authored
Merge pull request #10 from udecode/feat/add-auth-user-identity-helper
2 parents ebf8193 + 28facf6 commit ad6629a

File tree

2 files changed

+30
-6
lines changed

2 files changed

+30
-6
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'better-auth-convex': patch
3+
---
4+
5+
Add `getAuthUserIdentity` helper and improve type safety for session IDs

src/helpers.ts

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import type {
44
GenericQueryCtx,
55
} from 'convex/server';
66

7-
export const getAuthUserId = async <DataModel extends GenericDataModel>(
7+
export const getAuthUserIdentity = async <DataModel extends GenericDataModel>(
88
ctx: GenericQueryCtx<DataModel>
99
) => {
1010
const identity = await ctx.auth.getUserIdentity();
@@ -13,23 +13,42 @@ export const getAuthUserId = async <DataModel extends GenericDataModel>(
1313
return null;
1414
}
1515

16-
return identity.subject as DocumentByName<DataModel, 'user'>['_id'];
16+
return {
17+
...identity,
18+
sessionId: identity.sessionId as DocumentByName<
19+
DataModel,
20+
'session'
21+
>['_id'],
22+
userId: identity.subject as DocumentByName<DataModel, 'user'>['_id'],
23+
};
24+
};
25+
26+
export const getAuthUserId = async <DataModel extends GenericDataModel>(
27+
ctx: GenericQueryCtx<DataModel>
28+
) => {
29+
const identity = await getAuthUserIdentity(ctx);
30+
31+
if (!identity) {
32+
return null;
33+
}
34+
35+
return identity.subject;
1736
};
1837

1938
export const getSession = async <DataModel extends GenericDataModel>(
2039
ctx: GenericQueryCtx<DataModel>,
21-
_sessionId?: any
40+
_sessionId?: DocumentByName<DataModel, 'session'>['_id']
2241
) => {
23-
let sessionId = _sessionId;
42+
let sessionId: any = _sessionId;
2443

2544
if (!sessionId) {
26-
const identity = await ctx.auth.getUserIdentity();
45+
const identity = await getAuthUserIdentity(ctx);
2746

2847
if (!identity) {
2948
return null;
3049
}
3150

32-
sessionId = identity.sessionId as any;
51+
sessionId = identity.sessionId;
3352
}
3453

3554
return (await ctx.db.get(sessionId)) as DocumentByName<

0 commit comments

Comments
 (0)