tangled
alpha
login
or
join now
margin.at
/
margin
86
fork
atom
Write on the margins of the internet. Powered by the AT Protocol.
margin.at
extension
web
atproto
comments
86
fork
atom
overview
issues
4
pulls
1
pipelines
session fix stuff
scanash.com
3 days ago
4301e2ca
a1685aa7
+25
-2
3 changed files
expand all
collapse all
unified
split
backend
cmd
server
main.go
internal
api
token_refresh.go
db
queries_sessions.go
+15
backend/cmd/server/main.go
···
37
37
logger.Fatal("Failed to run migrations: %v", err)
38
38
}
39
39
40
40
+
go func() {
41
41
+
ticker := time.NewTicker(1 * time.Hour)
42
42
+
defer ticker.Stop()
43
43
+
44
44
+
if err := database.DeleteExpiredSessions(); err != nil {
45
45
+
logger.Error("Failed to run initial cleanup of expired sessions: %v", err)
46
46
+
}
47
47
+
48
48
+
for range ticker.C {
49
49
+
if err := database.DeleteExpiredSessions(); err != nil {
50
50
+
logger.Error("Failed to delete expired sessions: %v", err)
51
51
+
}
52
52
+
}
53
53
+
}()
54
54
+
40
55
embeddingClient := embeddings.NewClient()
41
56
if err := database.MigrateRecommendations(); err != nil {
42
57
logger.Fatal("Failed to run recommendation migrations: %v", err)
+5
-2
backend/internal/api/token_refresh.go
···
174
174
return false
175
175
}
176
176
errStr := err.Error()
177
177
-
return bytes.Contains([]byte(errStr), []byte("invalid_token")) &&
178
178
-
bytes.Contains([]byte(errStr), []byte("exp"))
177
177
+
return bytes.Contains([]byte(errStr), []byte("invalid_token")) ||
178
178
+
bytes.Contains([]byte(errStr), []byte("AuthenticationRequired")) ||
179
179
+
bytes.Contains([]byte(errStr), []byte("Unauthorized")) ||
180
180
+
bytes.Contains([]byte(errStr), []byte("authentication required")) ||
181
181
+
bytes.Contains([]byte(errStr), []byte("TokenExpired"))
179
182
}
180
183
181
184
func (tr *TokenRefresher) ExecuteWithAutoRefresh(
+5
backend/internal/db/queries_sessions.go
···
30
30
_, err := db.Exec(db.Rebind(`DELETE FROM sessions WHERE id = ?`), id)
31
31
return err
32
32
}
33
33
+
34
34
+
func (db *DB) DeleteExpiredSessions() error {
35
35
+
_, err := db.Exec(db.Rebind(`DELETE FROM sessions WHERE expires_at <= ?`), time.Now())
36
36
+
return err
37
37
+
}