headscale/hscontrol
Kristoffer Dalby 78990491da oidc: render HTML error pages for browser-facing failures
Add httpUserError() alongside httpError() for browser-facing error
paths. It renders a styled HTML page using the AuthError template
instead of returning plain text. Technical error details stay in
server logs; the HTML page shows actionable messages derived from
the HTTP status code:

  401/403 → "You are not authorized. Please contact your administrator."
  410     → "Your session has expired. Please try again."
  400-499 → "The request could not be processed. Please try again."
  500+    → "Something went wrong. Please try again later."

Convert all httpError calls in oidc.go (OIDC callback, SSH check,
registration confirm) to httpUserError. Machine-facing endpoints
(noise, verify, key, health, debug) are unchanged.

Fixes juanfont/headscale#3182
2026-04-13 17:23:47 +01:00
..
assets Swap favicon for updated version 2026-03-03 05:59:40 +01:00
capver capver: regenerate for tailscale v1.96 2026-04-08 13:00:22 +01:00
db db: guard UsePreAuthKey with WHERE used=false 2026-04-10 14:09:57 +01:00
derp all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
dns Fix typo in comment about fsnotify behavior 2026-02-27 15:23:06 +01:00
mapper state: replace zcache with bounded LRU for auth cache 2026-04-10 14:09:57 +01:00
policy testdata: strip unused fields from all test data files (23MB -> 4MB) 2026-04-01 14:10:42 +01:00
routes all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
servertest state: replace zcache with bounded LRU for auth cache 2026-04-10 14:09:57 +01:00
state db: guard UsePreAuthKey with WHERE used=false 2026-04-10 14:09:57 +01:00
templates templates: add error box component and error page template 2026-04-13 17:23:47 +01:00
types oidc: add confirmation page for node registration 2026-04-10 14:09:57 +01:00
util mapper/batcher: restructure internals for correctness 2026-03-14 02:52:28 -07:00
app.go oidc: add confirmation page for node registration 2026-04-10 14:09:57 +01:00
auth.go auth: check machine key on tailscaled-restart fast path 2026-04-10 14:09:57 +01:00
auth_tags_test.go state: replace zcache with bounded LRU for auth cache 2026-04-10 14:09:57 +01:00
auth_test.go state: replace zcache with bounded LRU for auth cache 2026-04-10 14:09:57 +01:00
debug.go debug: route statsviz through tsweb.Protected 2026-04-10 14:09:57 +01:00
grpcv1.go state: replace zcache with bounded LRU for auth cache 2026-04-10 14:09:57 +01:00
grpcv1_test.go hscontrol: add tests for SetTags user_id database persistence 2026-04-08 14:32:08 +01:00
handlers.go oidc: render HTML error pages for browser-facing failures 2026-04-13 17:23:47 +01:00
handlers_test.go oidc: render HTML error pages for browser-facing failures 2026-04-13 17:23:47 +01:00
metrics.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
noise.go noise: pass context to sshActionFollowUp 2026-04-10 14:09:57 +01:00
noise_test.go hscontrol: validate machine key and bind src/dst in SSH check handler 2026-04-10 14:09:57 +01:00
oidc.go oidc: render HTML error pages for browser-facing failures 2026-04-13 17:23:47 +01:00
oidc_confirm_test.go oidc: add confirmation page for node registration 2026-04-10 14:09:57 +01:00
oidc_template_test.go oidc: render HTML error pages for browser-facing failures 2026-04-13 17:23:47 +01:00
oidc_test.go oidc: make email verification configurable 2025-12-18 11:42:32 +00:00
platform_config.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
poll.go types: add node.expiry config, deprecate oidc.expiry 2026-04-08 13:00:22 +01:00
poll_test.go poll: fix poll test linter violations 2026-03-12 01:27:34 -07:00
tailsql.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
templates_consistency_test.go oidc: render HTML error pages for browser-facing failures 2026-04-13 17:23:47 +01:00