1 files changed, 11 insertions, 0 deletions
diff --git a/extra/admin-api/Interop/Spacebar.Interop.Authentication/SpacebarAuthenticationService.cs b/extra/admin-api/Interop/Spacebar.Interop.Authentication/SpacebarAuthenticationService.cs
index 7b4ad1c8..5f9ff500 100644
--- a/extra/admin-api/Interop/Spacebar.Interop.Authentication/SpacebarAuthenticationService.cs
+++ b/extra/admin-api/Interop/Spacebar.Interop.Authentication/SpacebarAuthenticationService.cs
@@ -46,4 +46,15 @@ public class SpacebarAuthenticationService(ILogger<SpacebarAuthenticationService
},
config.AuthCacheExpiry);
}
+
+ public async Task<User> GetCurrentSessionAsync(string token) {
+ var res = await ValidateTokenAsync(token);
+ return await UserCache.GetOrAdd(token,
+ async () => {
+ var uid = config.OverrideUid ?? res?.ClaimsIdentity.Claims.First(x => x.Type == "id").Value;
+ if (string.IsNullOrWhiteSpace(uid)) throw new InvalidOperationException("No user ID specified, is the access token valid?");
+ return await db.Users.FindAsync(uid) ?? throw new InvalidOperationException();
+ },
+ config.AuthCacheExpiry);
+ }
}
\ No newline at end of file
|