Xamarin使用令牌

时间:2017-11-08 19:18:56

标签: xamarin.forms

我正在构建一个Xamarin Forms PCL应用程序并使用MSAL成功进行身份验证。我对图API的REST调用都很成功。

我要做的是使用令牌在浏览器中打开outlook或yammer或calendar,即不要求用户重新进行身份验证。

Device.openUri总是将用户发送到auth页面,这是有道理的,因为我没有用它发送令牌。

这有可能吗?如果是这样,怎么办呢?

提前感谢!

1 个答案:

答案 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一起使用

希望这会有所帮助