/
githubmirror
/
photoprism
Обзор
Документация
Войти
/
githubmirror
/
photoprism
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
internal/api/session_response.go
73 строки
2 KB
Michael Mayer
Auth: Localize login/session/OIDC error responses via messageId #5699 #5682
27 июн 2026, 14:34
27 июн 2026, 14:34
a2e8592
Код
Авторство
О чём код?
package api import ( "github.com/gin-gonic/gin" "github.com/photoprism/photoprism/internal/config" "github.com/photoprism/photoprism/internal/entity" "github.com/photoprism/photoprism/internal/photoprism/get" "github.com/photoprism/photoprism/pkg/i18n" ) // CreateSessionResponse returns the authentication response data for POST requests // based on the session and configuration. func CreateSessionResponse(authToken string, sess *entity.Session, conf *config.ClientConfig) gin.H { return GetSessionResponse(authToken, sess, conf) } // CreateSessionError returns an authentication error response. "error" is the // instance-locale fallback; "messageId" (the English source) and "messageParams" // let the Web UI render the message in the current UI locale. func CreateSessionError(code int, id i18n.Message, params ...any) gin.H { resp := i18n.NewResponse(code, id, params...) return gin.H{ "status": StatusFailed, "code": resp.Code, "error": resp.Error, "messageId": resp.MessageID, "messageParams": resp.MessageParams, "config": get.Config().ClientPublic(), } } // GetSessionResponse returns the authentication response data for GET requests // based on the session and configuration. func GetSessionResponse(authToken string, sess *entity.Session, conf *config.ClientConfig) gin.H { if authToken == "" { return gin.H{ "status": StatusSuccess, "session_id": sess.ID, "expires_in": sess.ExpiresIn(), "provider": sess.GetProvider().String(), "scope": sess.Scope(), "user": sess.GetUser(), "data": sess.GetData().Redacted(), "config": conf, } } else { return gin.H{ "status": StatusSuccess, // TODO: "id" field is deprecated! Clients should now use "access_token" instead. // see https://github.com/photoprism/photoprism/commit/0d2f8be522dbf0a051ae6ef78abfc9efded0082d "id": authToken, "session_id": sess.ID, "access_token": authToken, "token_type": sess.AuthTokenType(), "expires_in": sess.ExpiresIn(), "provider": sess.GetProvider().String(), "scope": sess.Scope(), "user": sess.GetUser(), "data": sess.GetData().Redacted(), "config": conf, } } } // DeleteSessionResponse returns a confirmation response for DELETE requests. func DeleteSessionResponse(id string) gin.H { if id == "" { return gin.H{"status": StatusDeleted} } else { return gin.H{"status": StatusDeleted, "session_id": id} } }