我使用Azure AD B2C登录React Native应用。此应用可以对CMS(Strapi)进行API调用。在返回响应之前,CMS必须检查发出请求的用户是否已登录。
应用程序中的登录部分工作正常,这是我登录后在应用程序中返回的数据:
{
"tokenType": "Bearer",
"refreshToken": "...",
"scope": "offline_access openid",
"idToken": "...",
"issuedAt": 1698310667
}
字符串
然后,应用程序在报头x-activedirectory-token
中发送idToken。
我不知道如何在CMS策略(中间件)中检查令牌的有效性。我尝试了@azure/msal-node包,但未能找到一种方法来检查令牌是否有效。
These Azure docs在主题上设置了一个IPv6-Passport中间件,但Strapi使用了不同的路由器(koa),在中间件中添加中间件似乎很奇怪。
首选的解决方案是像@azure/msal-node包,可以检查令牌,或一些Azure端点或类似的东西。
也许我忽略了一些东西,因为我几乎没有Azure AD的经验。也就是说,任何帮助都非常感谢,因为我已经在这个问题上停留了一段时间。
2条答案
按热度按时间i1icjdpr1#
默认情况下,msal应该检查这个,但如果你正在寻找一个库来做这件事,看看here。
i86rm4rw2#
感谢@juunas为我指明了正确的方向。我设法通过使用jwks-rsa和jsonwebtoken库获得了所需的行为。这是如何工作的代码示例(基于jsonwebtoken readme中的代码示例):
字符串