From 7487af3db47ec47b83082b7eac78cb08d184a56d Mon Sep 17 00:00:00 2001 From: adlerhurst Date: Mon, 7 Sep 2020 12:39:22 +0200 Subject: [PATCH] add func for creating JWT token --- pkg/op/token.go | 14 ++++++++++++++ pkg/op/tokenrequest.go | 11 +++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/pkg/op/token.go b/pkg/op/token.go index 9d37788..0fbcf60 100644 --- a/pkg/op/token.go +++ b/pkg/op/token.go @@ -43,6 +43,20 @@ func CreateTokenResponse(ctx context.Context, authReq AuthRequest, client Client }, nil } +func CreateJWTTokenResponse(ctx context.Context, authReq AuthRequest, client Client, creator TokenCreator) (*oidc.AccessTokenResponse, error) { + accessToken, validity, err := CreateAccessToken(ctx, authReq, client, creator) + if err != nil { + return nil, err + } + + exp := uint64(validity.Seconds()) + return &oidc.AccessTokenResponse{ + AccessToken: accessToken, + TokenType: oidc.BearerToken, + ExpiresIn: exp, + }, nil +} + func CreateAccessToken(ctx context.Context, authReq AuthRequest, client Client, creator TokenCreator) (token string, validity time.Duration, err error) { id, exp, err := creator.Storage().CreateToken(ctx, authReq) if err != nil { diff --git a/pkg/op/tokenrequest.go b/pkg/op/tokenrequest.go index 7416a1a..611c2ab 100644 --- a/pkg/op/tokenrequest.go +++ b/pkg/op/tokenrequest.go @@ -129,9 +129,16 @@ func JWTExchange(w http.ResponseWriter, r *http.Request, exchanger VerifyExchang RequestError(w, r, err) } claims, err := exchanger.Verifier().Verify(r.Context(), "", assertion) - fmt.Println(claims, err) - _ = assertion + fmt.Println(claims, err) + var authReq AuthRequest + var client Client + resp, err := CreateJWTTokenResponse(r.Context(), authReq, client, exchanger) + if err != nil { + RequestError(w, r, err) + return + } + utils.MarshalJSON(w, resp) } func ParseJWTTokenRequest(r *http.Request, decoder *schema.Decoder) (string, error) {