java - 使用 OAuth 到 Azure AD 的 Java WebApp - 获取个人资料图片?
问题描述
我创建了一个 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,并从路由返回图像的字节。
推荐阅读
- sql-server - 从 XML 插入到节点长度超过 65000 个字符的 SQL Server 表中?
- javascript - 延迟更新 React Native 中的输入文本
- python - 基于另一列值python提取值
- python - 将 numpy recarray 转换为 pyarrow.Table
- html - 页脚是独立的文章吗?
- html - 如何在引导程序上为我的模态添加特定的 css?
- visual-studio - 使用 Visual Studio / CMake / WSL 时如何更改 gcc 编译器版本
- python - 随机替换字符串中的关键字
- python - 如何检查列表中的集合是否是彼此的子集?
- javascript - 分离组件中的 setState