siste finpuss på versjon to
De siste dagene var de store funksjonsinnleggene, roller og språk. Dette er kosten bak dem, småtinga som avslutter versjon to skikkelig.

Forsiden på kinesisk med mørkt tema på. Fortsatt samme øya.
Endringslista er tom for første gang siden i sommer. Hver bit av versjon to er rullet ut, verifisert og arkivert: spesifikasjonene som beskriver hvordan ting skal oppføre seg ligger nå i ett bibliotek, nitten områder dypt, så neste gang jeg lurer på "vent, hva bestemte jeg om lagringstid" står svaret skrevet ned i stedet for å bo i hodet mitt.
Og én fiks som fortjener sitt eget avsnitt, fordi den irriterte meg i ukevis før jeg forsto den: siden logget meg stadig ut. Cirka hvert kvarter, borte, logg inn igjen. Refresh-tokenet som skal holde en økt i live i tretti dager var der hele tiden, i en cookie avgrenset til /auth-stien, som betyr at nettleseren bare sendte den på auth-forespørsler. Vanlige sidebesøk bar den aldri, så den stille fornyelsen som kjører på hver sidelasting hadde aldri noe å fornye med. Fiksen er i bunn og grunn én linje:
return &http.Cookie{
Name: "refresh_token",
Value: rawToken,
Path: "/", // was "/auth", which the browser never sent on page visits
HttpOnly: true,
Secure: s.CookieSecure,
SameSite: http.SameSiteStrictMode,
}Én linje, og så den klassiske andre akten: første versjon av fiksen krasjet testserveren min. Med cookien synlig overalt fyrte fornyelseslogikken også mens den håndterte selve auth-forespørslene, som utløste en ny fornyelse, som utløste enda en. Evig løkke, tom for minne, død server. Vakta mot det er også på plass, og jeg passet på å teste akkurat det scenarioet, utløpt økt-token, sidelasting, fortsatt innlogget.
Så hvis siden pleide å logge deg ut midt i en kommentar: det skal den ikke lenger. Logg inn én gang, så sitter det.