feat(cap): expose CaptchaService and unversioned /api/cap routes

This commit is contained in:
ryan
2026-08-30 10:53:43 +08:00
parent be79eb4eb7
commit 254533c013
5 changed files with 172 additions and 3 deletions
+17
View File
@@ -77,6 +77,8 @@ func (p *Plugin) Apply(ctx *core.Context) error {
InvalidateRuntimeSettings()
})
core.Provide[contracts.CaptchaService](ctx, captchaService{})
// Register HTTP Routes
capGroup := ctx.Router().Group("/api/v1/cap")
{
@@ -85,6 +87,11 @@ func (p *Plugin) Apply(ctx *core.Context) error {
capGroup.POST("/redeem", Redeem)
}
legacy := ctx.Router().Group("/api/cap")
legacy.POST("/challenge", Challenge)
legacy.POST("/redeem", Redeem)
ctx.Router().RegisterWhitelist("/api/cap/challenge", "/api/cap/redeem")
// Register Settings Schemas
ctx.Settings().Register(extpoints.SettingSchema{
Key: "cap.login_enabled",
@@ -103,3 +110,13 @@ func (p *Plugin) Apply(ctx *core.Context) error {
return nil
}
type captchaService struct{}
func (captchaService) VerifyMiddleware(scope string) any {
return VerifyMiddleware(GetDefaultManager(), scope)
}
func (captchaService) ChallengeHandler() any { return Challenge }
func (captchaService) RedeemHandler() any { return Redeem }