我有一个移动应用程序,并希望使用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
我错了什么???
亲切的问候,
马丁
答案 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'];
}
}
?>