Add google authentication
This commit is contained in:
@@ -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"),
|
||||
),
|
||||
),
|
||||
),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user