Add google authentication

This commit is contained in:
Achim Rohn
2025-07-27 18:25:39 +02:00
parent 728cf90236
commit d6a229c95f
9 changed files with 953 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
package authentication
import (
"github.com/labstack/echo/v4"
"maragu.dev/gomponents"
. "maragu.dev/gomponents/html"
"salezenify/google"
"salezenify/html_components/components"
"salezenify/html_components/route"
"salezenify/layout"
"salezenify/user"
)
const LoginPath = "/login"
type LoginPage struct {
createPage layout.CreatePageFunc
LoginRoute route.GetRoute
}
func NewLoginPage(e *echo.Echo, createPage layout.CreatePageFunc) *LoginPage {
page := &LoginPage{createPage: createPage}
page.LoginRoute = route.NewGetRoute(LoginPath, page.Render).Add(e)
return page
}
func (l *LoginPage) Render(c echo.Context) error {
return l.createPage(c, layout.PageWebsiteMetaData{
WebsiteMetaData: components.WebsiteMetaData{
Title: "Login",
},
HideNavigation: true,
}, l.getLoginPage())
}
func (l *LoginPage) getLoginPage() gomponents.Group {
return []gomponents.Node{
P(
A(
Href(user.OpenIdConnectPath),
Button(
Class(components.ButtonClass()),
Type("button"),
gomponents.Text("Login"),
),
),
),
P(
A(
Href(google.GoogleLogin),
Button(
Class(components.ButtonClass()),
Type("button"),
gomponents.Text("Google Login"),
),
),
),
}
}