【发布时间】:2019-03-13 14:17:12
【问题描述】:
我的 Azure Web 应用使用 Express 选项启用了 Active Directory。我可以从 auth.me 获取用户声明/用户名。然后我如何获取用户的照片/头像?我得到的令牌在 Graph API 调用中不起作用。我从 Graph API 得到这个错误。这是我的代码。
请帮忙!花了几个小时搜索和阅读文档,但似乎没有任何东西可以解决 Express AD 场景。 谢谢 唐尼
{
"error": {
"code": "InvalidAuthenticationToken",
"message": "CompactToken parsing failed with error code: 80049217",
"innerError": {
"request-id": "e25f1fe5-4ede-4966-93c2-6d92d34da6ae",
"date": "2019-03-13T14:13:26"
}
}
}
axios.get('/.auth/me').then(resp => {
if(resp.data){
loggedInUser = {
accessToken:resp.data[0].access_token,
userId: resp.data[0].user_id,
username: resp.data[0].user_claims[9].val,
lastname: resp.data[0].user_claims[8].val,
fullname: resp.data[0].user_claims[11].val,
avatar:'https://cdn.vuetifyjs.com/images/lists/1.jpg'
}
let config = {
'headers':{
'Authorization': 'Bearer ' + loggedInUser.accessToken
}
}
axios.get('https://graph.microsoft.com/v1.0/me/photos/48x48/$value',config).then(resp => {
let photo = resp.data;
const url = window.URL || window.webkitURL;
const blobUrl = url.createObjectURL(photo);
document.getElementById('avatar').setAttribute("src", blobUrl);
loggedInUser.avatar = blobUrl;
console.log(blobUrl)
});
}
})
【问题讨论】:
-
您是如何设置 Azure AD 的?我想知道您是否需要在 webapp 下使用 login.microsoftonline.com 而不是 /.auth/me。
-
我刚刚为一个 azure Web 应用启用了 Active Directory。 AD 可以正常登录。我得到令牌。问题在于图形调用。
-
您已将 Microsoft 委托权限添加到您的 AD 应用注册中?
-
不知道这是什么意思或怎么做?请提供更多细节?谢谢
标签: azure-active-directory azure-web-app-service