f8e0615cc8
These changes ensure that the new (SHA256) session ID is returned in the "session_id" field, so that developers have time to update their client implementations to use the new "access_token" field. Signed-off-by: Michael Mayer <michael@photoprism.app>
54 lines
1.7 KiB
Go
54 lines
1.7 KiB
Go
package api
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"github.com/photoprism/photoprism/internal/config"
|
|
"github.com/photoprism/photoprism/internal/entity"
|
|
)
|
|
|
|
// 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)
|
|
}
|
|
|
|
// 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.Provider().String(),
|
|
"user": sess.User(),
|
|
"data": sess.Data(),
|
|
"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.Provider().String(),
|
|
"user": sess.User(),
|
|
"data": sess.Data(),
|
|
"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}
|
|
}
|
|
}
|