Как использовать AppClientContextFromSPAzureToken - PullRequest
0 голосов
/ 05 ноября 2018

Мы разработали программу SPFx с

this.context.aadHttpClientFactory.getClient("*myclientid*").then((client:AadHttpClient):void=>{
    client.get('*MyWebAPIUrl*?x=1&spsite='+this.context.pageContext.web.absoluteUrl,AadHttpClient.configurations.v1)
     .then((response:HttpClientResponse):Promise<any>=>{
       return response.json();
     })
});

Затем я помещаю эту spfx веб-часть на сайт SP. В веб-API Azure я получаю токен от клиента в Request.Headers.Authorization.Parameter :-), но когда я делаю

context = authManager.GetAzureADAccessTokenAuthenticatedContext(wSiteUrl, Request.Headers.Authorization.Parameter);
                context.Load(context.Web);
                context.ExecuteQuery();

Я получаю ошибку 401.

если я сделаю

context = authManager.GetAppOnlyAuthenticatedContext(wSiteUrl,System.Configuration.ConfigurationManager.AppSettings["ClientId"],System.Configuration.ConfigurationManager.AppSettings["ClientSecret"]);
            context.Load(context.Web);
            context.ExecuteQuery();

это работает.

Итак, что не так с токеном, переданным клиентом SPFx?

Спасибо за любую помощь

Gilbert

...