add missing error handling

This commit is contained in:
Livio Amstutz 2020-09-15 07:32:14 +02:00
parent 8790b54e0d
commit 5a98ec4623

View file

@ -2,6 +2,7 @@ package rp
import (
"context"
"errors"
"net/http"
"strings"
@ -271,17 +272,19 @@ func CodeExchange(ctx context.Context, code string, rp RelayingParty, opts ...Co
if err != nil {
return nil, err //TODO: our error
}
idTokenString, ok := token.Extra(idTokenKey).(string)
if !ok {
//TODO: implement
if rp.IsOAuth2Only() {
return &oidc.Tokens{Token: token}, nil
}
idToken := new(oidc.IDTokenClaims)
if !rp.IsOAuth2Only() {
idToken, err = VerifyTokens(ctx, token.AccessToken, idTokenString, rp.IDTokenVerifier())
if err != nil {
return nil, err //TODO: err
}
idTokenString, ok := token.Extra(idTokenKey).(string)
if !ok {
return nil, errors.New("id_token missing")
}
idToken, err := VerifyTokens(ctx, token.AccessToken, idTokenString, rp.IDTokenVerifier())
if err != nil {
return nil, err
}
return &oidc.Tokens{Token: token, IDTokenClaims: idToken, IDToken: idTokenString}, nil