Commit:
df03b6fParent:
ac6de7cCreate extension method for YouTube authorization
src/Api/Program.cs
+1
-1
diff --git a/src/Api/Program.cs b/src/Api/Program.cs
index 82dcce8..5f916d7 100644
@@ -83,6 +83,6 @@ app.MapGet(
return Results.Ok(result.CanonicalUrl);
}
)
.RequireAuthorization("YouTube");
.RequireYouTubeAuthorization();
app.Run();
src/Api/YouTubeAuth/YouTubeAuthExtensions.cs
+10
-1
diff --git a/src/Api/YouTubeAuth/YouTubeAuthExtensions.cs b/src/Api/YouTubeAuth/YouTubeAuthExtensions.cs
index f7fa2c8..30c9096 100644
@@ -2,6 +2,7 @@ using Google.Apis.Auth.AspNetCore3;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
using Slopper.Infrastructure.YouTube;
@@ -34,11 +35,13 @@ public static class YouTubeAuthExtensions
}
}
private const string YouTubePolicyName = "YouTube";
extension(AuthorizationBuilder auth)
{
public AuthorizationBuilder AddYouTubePolicy() =>
auth.AddPolicy(
"YouTube",
YouTubePolicyName,
policy =>
policy
.AddAuthenticationSchemes(GoogleOpenIdConnectDefaults.AuthenticationScheme)
@@ -46,4 +49,10 @@ public static class YouTubeAuthExtensions
.AddRequirements(new YouTubeScopeRequirement("https://www.googleapis.com/auth/youtube.upload"))
);
}
extension<TBuilder>(TBuilder builder)
where TBuilder : IEndpointConventionBuilder
{
public TBuilder RequireYouTubeAuthorization() => builder.RequireAuthorization(YouTubePolicyName);
}
}