in pkg/internal/pop/msal_public.go [13:46]
func AcquirePoPTokenInteractive(
context context.Context,
popClaims map[string]string,
scopes []string,
msalOptions *MsalClientOptions,
) (string, int64, error) {
var client *public.Client
var err error
client, err = getPublicClient(msalOptions)
if err != nil {
return "", -1, err
}
popKey, err := GetSwPoPKey()
if err != nil {
return "", -1, err
}
result, err := client.AcquireTokenInteractive(
context,
scopes,
public.WithAuthenticationScheme(
&PoPAuthenticationScheme{
Host: popClaims["u"],
PoPKey: popKey,
},
),
public.WithTenantID(msalOptions.TenantID),
)
if err != nil {
return "", -1, fmt.Errorf("failed to create PoP token with interactive flow: %w", err)
}
return result.AccessToken, result.ExpiresOn.Unix(), nil
}