/
githubmirror
/
photoprism
Обзор
Документация
Войти
/
githubmirror
/
photoprism
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
internal/api/session.go
38 строк
1 KB
Michael Mayer
Backend: Move get package to /internal/photoprism/get
02 июл 2024, 09:03
02 июл 2024, 09:03
e5bbff4
Код
Авторство
О чём код?
package api import ( "github.com/photoprism/photoprism/internal/entity" "github.com/photoprism/photoprism/internal/photoprism/get" "github.com/photoprism/photoprism/internal/server/limiter" "github.com/photoprism/photoprism/pkg/rnd" ) // Session finds the client session for the specified auth token, or returns nil if not found. func Session(clientIp, authToken string) (sess *entity.Session) { // Skip authentication and return the default session when public mode is enabled. if get.Config().Public() { return get.Session().Public() } // Check auth token format and return nil if it is invalid. if !rnd.IsAuthAny(authToken) { return nil } // Check failure rate limit and return nil if it has been exceeded. if limiter.Auth.Reject(clientIp) { return nil } // Try to find an active session based on the hashed auth token. sess, err := entity.FindSession(rnd.SessionID(authToken)) // Count error towards failure rate limit and return nil. if err != nil { limiter.Auth.Reserve(clientIp) return nil } // Return session. return sess }