Files
sonr/web/main.go
T

50 lines
1.2 KiB
Go
Raw Normal View History

2024-09-11 15:10:54 -04:00
//go:build wasm
package main
import (
"github.com/labstack/echo/v4"
"github.com/syumai/workers"
2024-09-16 01:06:00 -04:00
svc "github.com/onsonr/sonr/internal/dwn/handlers"
mdw "github.com/onsonr/sonr/internal/dwn/middleware"
"github.com/onsonr/sonr/internal/dwn/views"
2024-09-11 15:10:54 -04:00
)
func main() {
// Configure the server
e := echo.New()
// Use Middlewares
e.Use(mdw.UseSession)
// Setup routes
2024-09-14 12:47:25 -04:00
registerFrontend(e)
registerOpenID(e.Group("/authorize"))
2024-09-16 01:06:00 -04:00
// registerVault(e.Group("/vault"))
2024-09-11 15:10:54 -04:00
// Serve Worker
workers.Serve(e)
}
2024-09-14 12:47:25 -04:00
func registerFrontend(e *echo.Echo) {
2024-09-11 15:10:54 -04:00
// Add Public Pages
e.GET("/", views.HomeView)
e.GET("/login", views.LoginView)
e.POST("/login/:identifier", svc.HandleCredentialAssertion)
e.GET("/register", views.RegisterView)
e.POST("/register/:subject", svc.HandleCredentialCreation)
e.POST("/register/:subject/check", svc.CheckSubjectIsValid)
2024-09-14 12:47:25 -04:00
e.GET("/profile", views.ProfileView)
}
func registerOpenID(g *echo.Group) {
// Add Authenticated Pages
g.Use(mdw.MacaroonMiddleware("test", "test"))
g.GET("/", views.AuthorizeView)
g.GET("/discovery", svc.GetDiscovery)
g.GET("/jwks", svc.GetJWKS)
g.GET("/token", svc.GetToken)
g.POST("/:origin/grant/:subject", svc.GrantAuthorization)
}