Ste*_*ast 13 javascript node.js azure-ad-msal
我们正在将应用程序从“使用 Google 登录”移至“使用 Microsoft 登录”。它是一个 SPA,但查询 API 来获取数据。客户端全部使用 MSAL v2 (msal-browser.min.js) 运行,我们可以正常登录和退出。
当我们向服务器发送请求时,我们会发送 JWT ID 令牌。服务器是 NodeJS API。
我看不到任何具有“验证”方法的 Microsoft 服务器端 Node 库,我们可以使用该方法来验证来自客户端的 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
Run Code Online (Sandbox Code Playgroud)
我希望微软的同类产品很难找到,或者不是,我只是愚蠢地没有找到它。
是否有 Node 库提供了一种验证 MSAL ID 令牌的方法,该方法确认令牌有效并且用户已登录...?
MSAL 节点用于获取令牌,以便客户端可以访问受保护的资源,而不是用于验证 API 中的令牌。我认为 Microsoft 目前没有提供任何用于验证令牌的 Node 库,但您可以使用jsonwebtoken代替。
MSAL Node 库中有一个代码示例,演示如何验证令牌中的某些声明。
如果您想更详细地了解验证 Azure AD JWT 的步骤,我写了一篇文章来介绍各个步骤。该代码示例是用 Java 编写的,但所有步骤也适用于 Node。
| 归档时间: |
|
| 查看次数: |
8429 次 |
| 最近记录: |