Microsoft Graph-API和Azure移动应用程序

时间:2017-09-28 08:17:37

标签: azure azure-mobile-services

我有一个移动应用程序,并希望使用Microsoft Graph-API进行身份验证。 我使用的是Microsoft.Identity.Client命名空间。我可以通过调用

获取令牌
authResult = await App.PublicClientApp.AcquireTokenAsync(_scopes);

当我通过调用

将此令牌传递给我的Mobile-App时
azureUser = await App.MobileService.LoginWithMicrosoftAccountAsync(authResult.AccessToken);

我收到MobileServiceInvalidOperationException“您无权查看此目录或页面”。

我已在应用程序注册门户中注册了我的应用程序。 Registration Portal

Azure中的

看起来像这样: Azure Portal

我错了什么???

亲切的问候,

马丁

1 个答案:

答案 0 :(得分:2)

Easy Auth不支持使用Azure AD V2.0发布的访问令牌交换令牌(在本例中使用的是MSAL库)。

要使用移动客户端的客户端流,您可以使用OneDrive身份验证库从端点获取Microsoft帐户的令牌。 这是一个类似的线程供您参考:

Desktop client flow for MicrosoftAccount access to Azure Mobile Service API

以下代码适用于我:

<?php 
include('dbconnect.php');
session_start();

if(isset($_POST['userLogin'])){

    $lanId=mysqli_real_escape_string($conn,$_POST['lanId']);
    $pwd=md5($_POST['pwd']);
    $sql="SELECT * FROM user_info WHERE lanId='$lanId' AND password='$pwd'";
    $run_query=mysqli_query($conn,$sql);
    $count=mysqli_num_rows($run_query);

    if($count==1){
            $row=mysqli_fetch_array($run_query);
            $_SESSION['uid']=$row['user_id'];
            $_SESSION['uname']=$row['employee_name'];
            $_SESSION['dept']=$row['department'];
            $_SESSION['lanId']=$row['lanId'];
            echo "true";
    }
    if(isset($_POST['dept']) && !empyt($_POST['dept']))
    {
      $_SESSION['dept']=$_POST['dept'];
    }

}

?>