summaryrefslogtreecommitdiffstats
path: root/src/server/Api/Internal/Account/GetClaimsRoute.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/Api/Internal/Account/GetClaimsRoute.cs')
-rw-r--r--src/server/Api/Internal/Account/GetClaimsRoute.cs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/server/Api/Internal/Account/GetClaimsRoute.cs b/src/server/Api/Internal/Account/GetClaimsRoute.cs
new file mode 100644
index 0000000..fde8887
--- /dev/null
+++ b/src/server/Api/Internal/Account/GetClaimsRoute.cs
@@ -0,0 +1,16 @@
+namespace IOL.BookmarkThing.Server.Api.Internal.Account;
+
+public class GetClaimsRoute : RouteBaseInternalSync.WithoutRequest.WithActionResult
+{
+ [HttpGet("~/v{apiVersion:apiVersion}/account/claims")]
+ public override ActionResult Handle() {
+ if (HttpContext.Request.Query.ContainsKey("download")) {
+ var serializerOptions = new JsonSerializerOptions() {
+ ReferenceHandler = ReferenceHandler.IgnoreCycles
+ };
+ return File(JsonSerializer.SerializeToUtf8Bytes(User.Claims, serializerOptions), "application/json", "claims_" + User.Identity?.Name + ".json");
+ }
+
+ return Ok(User.Claims);
+ }
+}