Add JWT auth, token service & Neutrino endpoint
This commit is contained in:
@@ -28,6 +28,10 @@ public class Profile
|
||||
public PlatformType Platform { get; private set; }
|
||||
public string PlatformId { get; private set; }
|
||||
public List<string> DeviceIds { get; private set; } = [];
|
||||
|
||||
// EZ
|
||||
public bool IsBanned { get; private set; }
|
||||
public bool IsModerator { get; private set; }
|
||||
|
||||
public DateTimeOffset CreatedAt { get; private set; }
|
||||
|
||||
@@ -57,6 +61,8 @@ public class Profile
|
||||
DeviceIds.Add(deviceId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static string RequireValue(string value, string parameterName)
|
||||
=> !string.IsNullOrWhiteSpace(value) ? value : throw new DomainException($"{parameterName} is required.");
|
||||
}
|
||||
|
||||
7
RecNet.Domain/Services/Configuration/IConfigService.cs
Normal file
7
RecNet.Domain/Services/Configuration/IConfigService.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace RecNet.Domain.Services.Configuration;
|
||||
|
||||
public interface IConfigService
|
||||
{
|
||||
Task<T?> GetAsync<T>(string key, T? defaultValue = default, CancellationToken ct = default);
|
||||
Task SetAsync<T>(string key, T value, CancellationToken ct = default);
|
||||
}
|
||||
9
RecNet.Domain/Services/Tokens/ITokenService.cs
Normal file
9
RecNet.Domain/Services/Tokens/ITokenService.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using RecNet.Domain.Entities.Profiles;
|
||||
|
||||
namespace RecNet.Domain.Services.Tokens;
|
||||
|
||||
public interface ITokenService
|
||||
{
|
||||
TokenResult GenerateProfileToken(Profile profile);
|
||||
TokenVerifyResult VerifyToken(string token);
|
||||
}
|
||||
5
RecNet.Domain/Services/Tokens/TokenResult.cs
Normal file
5
RecNet.Domain/Services/Tokens/TokenResult.cs
Normal file
@@ -0,0 +1,5 @@
|
||||
namespace RecNet.Domain.Services.Tokens;
|
||||
|
||||
public sealed record TokenResult(
|
||||
string AccessToken,
|
||||
int ExpiresIn);
|
||||
21
RecNet.Domain/Services/Tokens/TokenVerifyResult.cs
Normal file
21
RecNet.Domain/Services/Tokens/TokenVerifyResult.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System.Security.Claims;
|
||||
|
||||
namespace RecNet.Domain.Services.Tokens;
|
||||
|
||||
public class TokenVerifyResult
|
||||
{
|
||||
public bool IsError { get; set; }
|
||||
public IEnumerable<Claim> Claims { get; set; }
|
||||
|
||||
private TokenVerifyResult(bool isError, IEnumerable<Claim>? claims)
|
||||
{
|
||||
IsError = isError;
|
||||
Claims = claims ?? [];
|
||||
}
|
||||
|
||||
public static TokenVerifyResult Success(IEnumerable<Claim> claims)
|
||||
=> new(false, claims);
|
||||
|
||||
public static TokenVerifyResult Failure()
|
||||
=> new(true, null);
|
||||
}
|
||||
Reference in New Issue
Block a user