in pkce/session.go [37:58]
func (s *Session) Authorize(provider goth.Provider, params goth.Params) (string, error) {
p := provider.(*Provider)
token, err := p.Config.Exchange(
context.Background(),
params.Get("code"),
oauth2.SetAuthURLParam("code_verifier", s.CodeVerifier),
)
if err != nil {
return "", err
}
if !token.Valid() {
return "", errors.New("invalid token received from provider")
}
s.AccessToken = token.AccessToken
s.RefreshToken = token.RefreshToken
s.ExpiresAt = token.Expiry
return token.AccessToken, nil
}