Add Steam OpenID authentication
Deploy Promiscuity Auth API / deploy (push) Failing after 20s
Deploy Promiscuity Character API / deploy (push) Failing after 19s
Deploy Promiscuity Crafting API / deploy (push) Failing after 20s
Deploy Promiscuity Inventory API / deploy (push) Failing after 19s
Deploy Promiscuity Locations API / deploy (push) Failing after 19s
Deploy Promiscuity Mail API / deploy (push) Failing after 20s
Deploy Promiscuity World API / deploy (push) Failing after 20s
k8s smoke test / test (push) Failing after 20s
Deploy Promiscuity Auth API / deploy (push) Failing after 20s
Deploy Promiscuity Character API / deploy (push) Failing after 19s
Deploy Promiscuity Crafting API / deploy (push) Failing after 20s
Deploy Promiscuity Inventory API / deploy (push) Failing after 19s
Deploy Promiscuity Locations API / deploy (push) Failing after 19s
Deploy Promiscuity Mail API / deploy (push) Failing after 20s
Deploy Promiscuity World API / deploy (push) Failing after 20s
k8s smoke test / test (push) Failing after 20s
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<IsPackable>false</IsPackable>
|
||||
<IsTestProject>true</IsTestProject>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
|
||||
<PackageReference Include="xunit" Version="2.9.2" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\AuthApi\AuthApi.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,39 @@
|
||||
using AuthApi.Services;
|
||||
using Xunit;
|
||||
|
||||
namespace AuthApi.Tests;
|
||||
|
||||
public class SteamOpenIdServiceTests
|
||||
{
|
||||
[Fact]
|
||||
public void BuildAuthenticationUrl_UsesSteamEndpointAndBindsReturnUrl()
|
||||
{
|
||||
const string callback = "https://pauth.ranaze.com/api/Auth/steam/callback?transactionId=abc-123";
|
||||
|
||||
var result = SteamOpenIdService.BuildAuthenticationUrl("https://pauth.ranaze.com", callback);
|
||||
|
||||
Assert.StartsWith(SteamOpenIdService.Endpoint + "?", result);
|
||||
Assert.Contains("openid.mode=checkid_setup", result);
|
||||
Assert.Contains(Uri.EscapeDataString(callback), result);
|
||||
Assert.Contains(Uri.EscapeDataString("https://pauth.ranaze.com"), result);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("https://steamcommunity.com/openid/id/76561198000000000", "76561198000000000")]
|
||||
[InlineData("http://steamcommunity.com/openid/id/76561198000000000", "76561198000000000")]
|
||||
[InlineData("https://example.com/openid/id/76561198000000000", null)]
|
||||
[InlineData("https://steamcommunity.com/openid/id/not-a-steamid", null)]
|
||||
public void ExtractSteamId_OnlyAcceptsSteamClaimedIds(string claimedId, string? expected)
|
||||
{
|
||||
Assert.Equal(expected, SteamOpenIdService.ExtractSteamId(claimedId));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("ns:http://specs.openid.net/auth/2.0\nis_valid:true\n", true)]
|
||||
[InlineData("is_valid:false\n", false)]
|
||||
[InlineData("is_valid:true-ish\n", false)]
|
||||
public void IsValidAuthenticationResponse_RequiresExactValidLine(string response, bool expected)
|
||||
{
|
||||
Assert.Equal(expected, SteamOpenIdService.IsValidAuthenticationResponse(response));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user