我正在构建一个Xamarin Forms PCL应用程序并使用MSAL成功进行身份验证。我对图API的REST调用都很成功。
我要做的是使用令牌在浏览器中打开outlook或yammer或calendar,即不要求用户重新进行身份验证。
Device.openUri总是将用户发送到auth页面,这是有道理的,因为我没有用它发送令牌。
这有可能吗?如果是这样,怎么办呢?
提前感谢!
答案 0 :(得分:1)
请在Azure中对您的App注册添加权限(例如,对Yammer)。 然后按照
定义范围数组 string[] Scopes = { "User.Read", "https://api.yammer.com/user_impersonation" };
然后启动您的PublicClientApplication(PCA)
PCA = PublicClientApplicationBuilder.Create(ClientId).WithRedirectUri(ReturnUrl).Build();
之后,按照MSAL团队here的示例,您需要在登录按钮中添加此代码
try
{
IAccount firstAccount = accounts.FirstOrDefault();
authResult = await App.PCA.AcquireTokenSilent(App.Scopes, firstAccount)
.ExecuteAsync();
/* display info*/
}
catch (MsalUiRequiredException ex)
{
try
{
authResult = await App.PCA.AcquireTokenInteractive(App.Scopes, App.ParentWindow)
.ExecuteAsync();
/* display info*/
}
}
现在您将获得的令牌也将与Yammer一起使用
希望这会有所帮助