From ee9ad6d87faf90b96e971bac62f19cc3e86a4265 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Tue, 4 Nov 2025 23:29:39 +0800 Subject: [PATCH] :alembic: Put steam connection to test --- .../Auth/OpenId/SteamOidcService.cs | 43 +++---------------- DysonNetwork.Pass/DysonNetwork.Pass.csproj | 1 + .../Startup/ServiceCollectionExtensions.cs | 2 + 3 files changed, 9 insertions(+), 37 deletions(-) diff --git a/DysonNetwork.Pass/Auth/OpenId/SteamOidcService.cs b/DysonNetwork.Pass/Auth/OpenId/SteamOidcService.cs index b4851e1..5c3309c 100644 --- a/DysonNetwork.Pass/Auth/OpenId/SteamOidcService.cs +++ b/DysonNetwork.Pass/Auth/OpenId/SteamOidcService.cs @@ -1,4 +1,3 @@ -using System.Text.Json; using DysonNetwork.Shared.Cache; namespace DysonNetwork.Pass.Auth.OpenId; @@ -74,51 +73,21 @@ public class SteamOidcService( throw new InvalidOperationException("Invalid Steam ID format"); } - // Fetch user information from Steam API + // Create user information with Steam ID var userInfo = await GetUserInfoAsync(steamId); return userInfo; } - private async Task GetUserInfoAsync(string steamId) + private Task GetUserInfoAsync(string steamId) { - var config = GetProviderConfig(); - var apiKey = Configuration[$"Oidc:Steam:ApiKey"] ?? throw new InvalidOperationException("Steam API key not configured"); - - var client = HttpClientFactory.CreateClient(); - var url = $"https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key={apiKey}&steamids={steamId}"; - - var response = await client.GetAsync(url); - response.EnsureSuccessStatusCode(); - - var json = await response.Content.ReadAsStringAsync(); - var steamResponse = JsonDocument.Parse(json).RootElement; - - var players = steamResponse.GetProperty("response").GetProperty("players"); - if (players.GetArrayLength() == 0) + return Task.FromResult(new OidcUserInfo { - throw new InvalidOperationException("Steam user not found"); - } - - var player = players[0]; - var steamIdStr = player.GetProperty("steamid").GetString() ?? ""; - var personaName = player.GetProperty("personaname").GetString() ?? ""; - var avatarUrl = player.TryGetProperty("avatarfull", out var avatarElement) - ? avatarElement.GetString() - : player.TryGetProperty("avatarmedium", out var mediumAvatarElement) - ? mediumAvatarElement.GetString() - : null; - - return new OidcUserInfo - { - UserId = steamIdStr, - DisplayName = personaName, - PreferredUsername = personaName, - ProfilePictureUrl = avatarUrl, + UserId = steamId, Provider = ProviderName, - // Steam OpenID doesn't provide email + // Steam OpenID doesn't provide additional user info Email = null, EmailVerified = false - }; + }); } } diff --git a/DysonNetwork.Pass/DysonNetwork.Pass.csproj b/DysonNetwork.Pass/DysonNetwork.Pass.csproj index ee9b11c..8f8e47e 100644 --- a/DysonNetwork.Pass/DysonNetwork.Pass.csproj +++ b/DysonNetwork.Pass/DysonNetwork.Pass.csproj @@ -40,6 +40,7 @@ + diff --git a/DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs b/DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs index 02569e6..0138a52 100644 --- a/DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs +++ b/DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs @@ -59,6 +59,7 @@ public static class ServiceCollectionExtensions services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); @@ -66,6 +67,7 @@ public static class ServiceCollectionExtensions services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); services.AddControllers().AddJsonOptions(options => {