Milan Pavlik d9ccc1d141
[papi] OIDC service signs state with HS256, reusing signing PK - WEB-206 (#17328)
* [papi] OIDC service signs state with RSA256

* Fix

* retest

* fix

* add test
2023-04-24 17:14:45 +08:00

31 lines
779 B
Go

// Copyright (c) 2023 Gitpod GmbH. All rights reserved.
// Licensed under the GNU Affero General Public License (AGPL).
// See License.AGPL.txt in the project root for license information.
package oidc
import (
"time"
"github.com/golang-jwt/jwt/v5"
)
type StateClaims struct {
// Internal client ID
ClientConfigID string `json:"clientId"`
ReturnToURL string `json:"returnTo"`
jwt.RegisteredClaims
}
func NewStateJWT(clientConfigID string, returnURL string, issuedAt, expiry time.Time) *jwt.Token {
return jwt.NewWithClaims(jwt.SigningMethodHS256, &StateClaims{
ClientConfigID: clientConfigID,
ReturnToURL: returnURL,
RegisteredClaims: jwt.RegisteredClaims{
ExpiresAt: jwt.NewNumericDate(expiry),
IssuedAt: jwt.NewNumericDate(issuedAt),
},
})
}