templates: generalise auth templates for web and OIDC
Extract shared HTML/CSS design into a common template and create generalised auth success and web auth templates that work for both node registration and SSH check authentication flows. Updates #1850
This commit is contained in:
parent
cb3b6949ea
commit
4a7e1475c0
9 changed files with 324 additions and 139 deletions
|
|
@ -262,6 +262,23 @@ func (a *AuthProviderWeb) AuthHandler(
|
|||
writer http.ResponseWriter,
|
||||
req *http.Request,
|
||||
) {
|
||||
authID, err := authIDFromRequest(req)
|
||||
if err != nil {
|
||||
httpError(writer, err)
|
||||
return
|
||||
}
|
||||
|
||||
writer.Header().Set("Content-Type", "text/html; charset=utf-8")
|
||||
writer.WriteHeader(http.StatusOK)
|
||||
|
||||
_, err = writer.Write([]byte(templates.AuthWeb(
|
||||
"Authentication check",
|
||||
"Run the command below in the headscale server to approve this authentication request:",
|
||||
"headscale auth approve --auth-id "+authID.String(),
|
||||
).Render()))
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("failed to write auth response")
|
||||
}
|
||||
}
|
||||
|
||||
func authIDFromRequest(req *http.Request) (types.AuthID, error) {
|
||||
|
|
@ -299,7 +316,11 @@ func (a *AuthProviderWeb) RegisterHandler(
|
|||
writer.Header().Set("Content-Type", "text/html; charset=utf-8")
|
||||
writer.WriteHeader(http.StatusOK)
|
||||
|
||||
_, err = writer.Write([]byte(templates.RegisterWeb(registrationId).Render()))
|
||||
_, err = writer.Write([]byte(templates.AuthWeb(
|
||||
"Node registration",
|
||||
"Run the command below in the headscale server to add this node to your network:",
|
||||
fmt.Sprintf("headscale auth register --auth-id %s --user USERNAME", registrationId.String()),
|
||||
).Render()))
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("failed to write register response")
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue