我创建了一个SpringBoot应用程序,该应用程序使用OAuth 2.0针对我公司的Azure Active Directory服务器对用户进行身份验证
。现在我想显示用户的个人资料图片。
我这样做的第一种方法是天真地将图形 API url 嵌入到 IMG 标签中的用户个人资料图片中,假设浏览器的 cookie 会隐式为登录用户提供身份验证:
<img src="https://graph.microsoft.com/v1.0/me/photos/48x48/$value"/>
但这会导致 401 错误:
{
"error": {
"code": "InvalidAuthenticationToken",
"message": "Access token is empty.",
"innerError": {
"request-id": "71fe8fc9-e8d2-4f2e-950d-04e7d9fa64e6",
"date": "2018-09-24T07:08:50"
}
}
}
在 AD/OAuth 身份验证后获取用户个人资料图片的最佳方法 - 我很乐意在客户端或服务器端执行此操作,理想情况下我想知道这两种方法
你可以在客户端执行此操作,但你需要使用 ADAL.JS/MSAL 获取访问令牌.JS然后请求该文件并通过 JavaScript 将其设置为 img 元素的内容。
服务器端可能更容易实现,将 img 指向后端中的 HTTP 路由,获取访问令牌,调用 API,并从路由返回图像的字节作为结果。