Для использования других компонентов необходимо использовать компонент входа в систему. - PullRequest
0 голосов
/ 26 марта 2020

Я разрабатываю приложение в React, я использую MSAL для входа в приложение, и как только пользователь проходит аутентификацию, я хочу использовать карточный компонент человека, но не могу заставить его работать. Я расскажу вам, что я реализовал в случае, если я забыл некоторые шаги. Я добавил следующий тег в сам компонент:

<mgt-msal-provider client-id={process.env.REACT_APP_MSALCLIENTID}></mgt-msal-provider>

, где этот клиент я использую на MSal для аутентификации пользователя. Я также попытался определить его в самом сборщике:

Providers.globalProvider = new MsalProvider({clientId:process.env.REACT_APP_MSALCLIENTID});

Теперь, если я добавлю тег входа в систему на компоненте карты и нажму на него, он будет работать отлично.

Можно ли использовать тот же msal моего приложения с провайдером графического инструментария msal?

1 Ответ

1 голос
/ 26 марта 2020

Компоненты инструментария должны иметь способ вызова графа, и это осуществляется через провайдера. Если вы уже прошли аутентификацию с вашим собственным msal, вам не нужно использовать MsalProvider, и вы можете создать SimpleProvider или создать своего собственного провайдера . Поставщик имеет две основные цели - уведомить компонент об изменении состояния аутентификации (вход / выход) и получить accessToken для вызова графа с предоставленной областью действия. Например, как минимум, вы можете сделать это:

Providers.globalProvider = new SimpleProvider((scopes) => { 
 //return accessToken for scopes using your msal instance
});

// when the user signs in, set the provider state to signedIn
// this will notify all components that the user is signed in 
// and they can call the graph
Providers.globalProvider.setState(ProviderState.SignedIn);
...