login.go

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