1package idp
2
3import (
4 "context"
5 "fmt"
6)
7
8func (p *IDP) CodeEpoch(ctx context.Context, code string) (string, int64, string, error) {
9 c, err := p.dex.GetAuthCode(ctx, code)
10 if err != nil {
11 return "", 0, "", fmt.Errorf("idp: read the authorization code: %w", err)
12 }
13 if c.ConnectorID != ConnectorID {
14 return "", 0, "", ErrWrongConnector
15 }
16 userID, epoch, browser, err := parseGrant(c.ConnectorData)
17 if err != nil || userID != c.Claims.UserID {
18 return "", 0, "", ErrGrantMalformed
19 }
20 return userID, epoch, browser, nil
21}