summaryrefslogtreecommitdiff
path: root/handlers.go
diff options
context:
space:
mode:
Diffstat (limited to 'handlers.go')
-rw-r--r--handlers.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/handlers.go b/handlers.go
index 141230d..f23171f 100644
--- a/handlers.go
+++ b/handlers.go
@@ -13,6 +13,7 @@ var frontendEmbed embed.FS
func init() {
router.HandleFunc("/api/version", version)
+ router.HandleFunc("/api/registration", registration).Methods("POST")
// frontend must come last to make sure /api takes precedence
frontend, err := fs.Sub(frontendEmbed, "build/frontend/public")
@@ -25,3 +26,23 @@ func init() {
func version(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, versionTxt)
}
+
+func registration(w http.ResponseWriter, r *http.Request) {
+ token, err := NewToken()
+ if err != nil {
+ http.Error(w, "Failed to generate token.", http.StatusInternalServerError)
+ return
+ }
+
+ cookie := http.Cookie{
+ Name: "token",
+ Value: token.Private(),
+ HttpOnly: true,
+ Secure: true,
+ SameSite: http.SameSiteStrictMode,
+ }
+
+ http.SetCookie(w, &cookie)
+
+ fmt.Fprintf(w, "%s\n", token.Public())
+}