package endpoint import ( customermodel "git.sendico.io/tech/sxchnge/product/customers/model" sessionmodel "git.sendico.io/tech/sxchnge/product/sessions/model" "time" emodel "git.sendico.io/tech/sxchnge/product/auth/model" "git.sendico.io/tech/sxchnge/product/auth/response" "github.com/go-chi/jwtauth/v5" ) func (er *HttpEndpointRouter) CreateAccessTokenForSession(user *customermodel.Account, session sessionmodel.SessionIdentifier) (sresponse.TokenData, error) { ja := jwtauth.New(er.signature.Algorithm, er.signature.PrivateKey, er.signature.PublicKey) _, res, err := ja.Encode(emodel.Account2ClaimsForSession(user, er.config.Expiration.Account, session)) token := sresponse.TokenData{ Token: res, Expiration: time.Now().Add(time.Duration(er.config.Expiration.Account) * time.Hour), } return token, err } func (er *HttpEndpointRouter) CreatePendingToken(user *customermodel.Account, ttlMinutes int) (sresponse.TokenData, error) { ja := jwtauth.New(er.signature.Algorithm, er.signature.PrivateKey, er.signature.PublicKey) _, res, err := ja.Encode(emodel.PendingAccount2Claims(user, ttlMinutes)) token := sresponse.TokenData{ Token: res, Expiration: time.Now().Add(time.Duration(ttlMinutes) * time.Minute), } return token, err }