public static async Task <string> CreateToken <T>( IServiceProvider serviceProvider, T payload) { IBewitTokenGenerator <T> bewitGenerator = serviceProvider .GetService <IBewitTokenGenerator <T> >(); return((await bewitGenerator .GenerateBewitTokenAsync(payload, default)) .ToString()); }
public async Task InvokeAsync( IMiddlewareContext context, IBewitTokenGenerator <TPayload> tokenGenerator) { await _next(context).ConfigureAwait(false); if (context.Result is TPayload result) { BewitToken <TPayload> bewit = await tokenGenerator.GenerateBewitTokenAsync( result, context.RequestAborted); context.Result = (string)bewit; } }
public async Task <string> CreateBewitToken(CreateBewitTokenInput input) { switch (input.TokenType) { case TokenType.FooPayload: return((await _fooPayloadGenerator .GenerateBewitTokenAsync(new FooPayload(), default)) .ToString()); case TokenType.BarPayload: return((await _barPayloadGenerator .GenerateBewitTokenAsync(new BarPayload(), default)) .ToString()); default: throw new InvalidOperationException(); } }
public static async Task <string> CreateBadToken() { var bewitOptions = new BewitOptions { Secret = "badSecret", TokenDuration = TimeSpan.FromMinutes(5) }; ServiceProvider serviceProvider = new ServiceCollection() .AddBewitGeneration(bewitOptions, b => b.AddPayload <string>()) .BuildServiceProvider(); IBewitTokenGenerator <string> bewitGenerator = serviceProvider .GetService <IBewitTokenGenerator <string> >(); return((await bewitGenerator .GenerateBewitTokenAsync("badPayload", default)) .ToString()); }
public async Task InvokeAsync( IMiddlewareContext context, IBewitTokenGenerator <string> tokenGenerator) { await _next(context).ConfigureAwait(false); if (context.Result is string result) { var uri = new Uri(result); BewitToken <string> bewit = await tokenGenerator.GenerateBewitTokenAsync( uri.PathAndQuery, context.RequestAborted); var parametersToAdd = new Dictionary <string, string> { { "bewit", WebUtility.UrlEncode((string)bewit) } }; var newUri = QueryHelpers.AddQueryString(result, parametersToAdd); context.Result = newUri; } }