40 lines
898 B
Go
40 lines
898 B
Go
package adobe
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"net/http"
|
|
"strings"
|
|
)
|
|
|
|
const (
|
|
refreshURL = "https://adobeid-na1.services.adobe.com/ims/check/v6/token?jslVersion=v2-v0.48.0-1-g1e322cb"
|
|
clientID = "projectx_webapp"
|
|
scopeValue = "AdobeID,firefly_api,openid"
|
|
)
|
|
|
|
var ErrAdobeCookieEmpty = errors.New("cookie is empty")
|
|
|
|
type CookieExchangeResult struct {
|
|
AccessToken string
|
|
ExpiresIn int
|
|
Raw map[string]any
|
|
}
|
|
|
|
func ExchangeCookieToAccessToken(ctx context.Context, client *http.Client, cookie string) (*CookieExchangeResult, error) {
|
|
_ = client
|
|
tlsClient, err := NewClient(clientID, "").newTLSClient()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return exchangeCookieWithTLSClient(ctx, tlsClient, cookie)
|
|
}
|
|
|
|
func normalizeCookie(v string) string {
|
|
v = strings.TrimSpace(v)
|
|
if strings.HasPrefix(strings.ToLower(v), "cookie:") {
|
|
v = strings.TrimSpace(v[len("cookie:"):])
|
|
}
|
|
return v
|
|
}
|