【发布时间】:2023-01-12 05:15:01
【问题描述】:
我们正在将应用程序从“使用 Google 登录”转移到“使用 Microsoft 登录”。它是一个 SPA,但查询 API 以获取数据。客户端全部使用 MSAL v2 (msal-browser.min.js),我们可以正常登录和注销。
当我们向服务器发送请求时,我们会发送 JWT ID 令牌。服务器是一个 NodeJS API。
我看不到任何具有“验证”方法的 Microsoft 服务器端节点库,我们可以使用它来验证来自客户端的 ID 令牌。
我们一直在查看 @azure/msal-node 和 @azure/msal-common,但看不到任何我们可以将 ID 令牌提供给的东西,以验证令牌是否有效以及用户是否已登录。
如果用户未登录,我们希望从 API 返回“未授权”。
使用 Google,这很容易,我们像这样使用 google-auth-library:
const client = new OAuth2Client(googleClientId)
const ticket = await client.verifyIdToken({ idToken: googleIdToken, audience: googleClientId })
const payload = ticket.getPayload() // jwt payload
我希望微软的同类产品很难找到,或者不是,我只是愚蠢地没有找到它。
是否有一个节点库提供了一种方法来验证 MSAL ID 令牌,确认令牌有效并且用户已登录......?
【问题讨论】:
标签: javascript node.js msal