Преглед на файлове

Refresh token on every request

master
Immanuel Onyeka преди 7 месеца
родител
ревизия
9e0435121b
променени са 1 файла, в които са добавени 11 реда и са изтрити 1 реда
  1. +11
    -1
      skouter.go

+ 11
- 1
skouter.go Целия файл

@@ -961,9 +961,13 @@ func setTokenCookie(id int, role string, w http.ResponseWriter) error {
return nil
}

func getToken(w http.ResponseWriter, db *sql.DB, r *http.Request) {
func refreshToken(w http.ResponseWriter, db *sql.DB, r *http.Request) {
claims, _ := getClaims(r)
if !claims.Valid() {
return
}
err := setTokenCookie(claims.Id, claims.Role, w)

if err != nil {
@@ -971,6 +975,8 @@ func getToken(w http.ResponseWriter, db *sql.DB, r *http.Request) {
"Token generation error",
http.StatusInternalServerError)
}
return
}

func getClaims(r *http.Request) (UserClaims, error) {
@@ -3554,8 +3560,12 @@ func api(w http.ResponseWriter, r *http.Request) {
panic(err)
// maybe os.Exit(1) instead
}
refreshToken(w, db, r)

switch {
case match(p, "/api/refreshTokeen", &args):
// Dummy case to trigger refreshToken() without sending 404
case match(p, "/api/login", &args) &&
r.Method == http.MethodPost:
login(w, db, r)


Loading…
Отказ
Запис