2020-07-12 22:43:25 +00:00
|
|
|
package tokens
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/gbrlsnchs/jwt/v3"
|
|
|
|
)
|
|
|
|
|
|
|
|
type UploadPayload struct {
|
|
|
|
jwt.Payload
|
|
|
|
|
|
|
|
ServerUuid string `json:"server_uuid"`
|
2022-07-24 21:12:47 +00:00
|
|
|
UserUuid string `json:"user_uuid"`
|
2020-07-12 22:43:25 +00:00
|
|
|
UniqueId string `json:"unique_id"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// Returns the JWT payload.
|
|
|
|
func (p *UploadPayload) GetPayload() *jwt.Payload {
|
|
|
|
return &p.Payload
|
|
|
|
}
|
|
|
|
|
|
|
|
// Determines if this JWT is valid for the given request cycle. If the
|
|
|
|
// unique ID passed in the token has already been seen before this will
|
|
|
|
// return false. This allows us to use this JWT as a one-time token that
|
|
|
|
// validates all of the request.
|
|
|
|
func (p *UploadPayload) IsUniqueRequest() bool {
|
|
|
|
return getTokenStore().IsValidToken(p.UniqueId)
|
|
|
|
}
|