diff options
Diffstat (limited to 'handlers.go')
| -rw-r--r-- | handlers.go | 21 |
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()) +} |
