2024-09-16 01:06:00 -04:00
|
|
|
//go:build js && wasm
|
|
|
|
|
// +build js,wasm
|
2024-09-11 15:10:54 -04:00
|
|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"github.com/labstack/echo/v4"
|
2024-09-16 01:06:00 -04:00
|
|
|
"github.com/onsonr/sonr/internal/dwn/wasm"
|
2024-09-11 15:10:54 -04:00
|
|
|
|
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() {
|
2024-09-16 01:06:00 -04:00
|
|
|
e := New()
|
|
|
|
|
wasm.Serve(e)
|
2024-09-11 15:10:54 -04:00
|
|
|
}
|
|
|
|
|
|
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)
|
|
|
|
|
}
|
2024-09-11 15:10:54 -04:00
|
|
|
|
2024-09-16 01:06:00 -04:00
|
|
|
func New() *echo.Echo {
|
|
|
|
|
e := echo.New()
|
|
|
|
|
e.Use(mdw.UseSession)
|
|
|
|
|
registerFrontend(e)
|
|
|
|
|
registerOpenID(e.Group("/authorize"))
|
|
|
|
|
return e
|
2024-09-11 15:10:54 -04:00
|
|
|
}
|