| 1234567891011121314151617181920212223242526272829303132333435363738 |
- using Microsoft.Extensions.Configuration;
- using Microsoft.IdentityModel.Tokens;
- using System;
- using System.Threading.Tasks;
- namespace BulkPrintingAPI.Configuration
- {
- public class TokenAuthenticationOptions
- {
- public TokenAuthenticationOptions(IConfiguration configuration)
- {
- Issuer = configuration.GetValue("Issuer", "bulk");
- Audience = configuration.GetValue("Audience", "bulk");
- Lifetime = TimeSpan.FromSeconds(configuration.GetValue("TokenLifetime", 600));
- Key = new SymmetricSecurityKey(DataEncryptionOptions.DeriveKey(configuration, "Key")
- .GetBytes(32));
- SigningCredentials = new SigningCredentials(Key, SecurityAlgorithms.HmacSha256);
- EncryptingCredentials = new EncryptingCredentials(Key, "dir",
- SecurityAlgorithms.Aes128CbcHmacSha256);
- }
- public string Issuer { get; set; }
- public string Audience { get; set; }
- public TimeSpan Lifetime { get; set; }
- public SecurityKey Key { get; set; }
- public SigningCredentials SigningCredentials { get; set; }
- public EncryptingCredentials EncryptingCredentials { get; set; }
- public Func<Task<string>> NonceGenerator { get; set; }
- = () => Task.FromResult(Guid.NewGuid().ToString());
- }
- }
|