diff --git a/DigitalData.Core.Abstractions/Security/IJwtSignatureService.cs b/DigitalData.Core.Abstractions/Security/IJwtSignatureService.cs new file mode 100644 index 0000000..79bfabc --- /dev/null +++ b/DigitalData.Core.Abstractions/Security/IJwtSignatureService.cs @@ -0,0 +1,19 @@ +using Microsoft.IdentityModel.Tokens; + +namespace DigitalData.Core.Abstractions.Security +{ + public interface IJwtSignatureService + { + SecurityToken CreateToken(SecurityTokenDescriptor tokenDescriptor); + + SecurityToken CreateToken(TPrincipal subject, TokenDescription description); + + SecurityToken CreateToken(TPrincipal subject, string issuer, string audience); + + string CreateAndWriteToken(SecurityTokenDescriptor descriptor); + + string CreateAndWriteToken(TPrincipal subject, TokenDescription description); + + string CreateAndWriteToken(TPrincipal subject, string issuer, string audience); + } +} \ No newline at end of file diff --git a/DigitalData.Core.Security/JwtSignatureService.cs b/DigitalData.Core.Security/JwtSignatureService.cs index 58e4c6c..b47f281 100644 --- a/DigitalData.Core.Security/JwtSignatureService.cs +++ b/DigitalData.Core.Security/JwtSignatureService.cs @@ -7,7 +7,7 @@ using System.IdentityModel.Tokens.Jwt; namespace DigitalData.Core.Security { - public class JwtSignatureService : JwtSecurityTokenHandler + public class JwtSignatureService : JwtSecurityTokenHandler, IJwtSignatureService { private readonly ClaimDescriptor _claimDescriptor; @@ -45,6 +45,8 @@ namespace DigitalData.Core.Security return CreateToken(subject: subject, description: description); } + public string CreateAndWriteToken(SecurityTokenDescriptor descriptor) => WriteToken(CreateToken(descriptor)); + public string CreateAndWriteToken(TPrincipal subject, TokenDescription description) => WriteToken(CreateToken(subject: subject, description: description)); public string CreateAndWriteToken(TPrincipal subject, string issuer, string audience) => WriteToken(CreateToken(subject: subject, issuer: issuer, audience: audience));