1// SPDX-FileCopyrightText: 2022 Amolith <amolith@secluded.site>
2//
3// SPDX-License-Identifier: BSD-2-Clause
4
5package main
6
7import (
8 "io"
9 "net/http"
10 "time"
11)
12
13func (m model) login(writer http.ResponseWriter, request *http.Request) {
14 if request.URL.Query().Get("access_token") == m.AccessToken {
15 expiration := time.Now().Add(365 * 24 * time.Hour)
16 cookie := http.Cookie{Name: "access_token", Value: m.AccessToken, Expires: expiration}
17 http.SetCookie(writer, &cookie)
18 http.Redirect(writer, request, "/", 302)
19 } else {
20 login, err := templates.ReadFile("templates/login.html")
21 if err != nil {
22 http.Error(writer, "500 Internal Server Error: "+err.Error(), 500)
23 }
24 io.WriteString(writer, string(login))
25 }
26}