在msal-react中无需用户登录,通过客户端凭据获取令牌可行吗?
在msal-react中实现无用户登录的客户端凭据认证?
不行。msal-react的设计定位是前端用户交互场景,主要支持授权码流(带PKCE)这类需要用户参与的认证流程,而客户端凭据模式属于后端服务间的认证方式——它需要用到客户端密钥(client secret),如果在前端React应用中暴露这个密钥,会带来严重的安全风险(任何人都能拿到密钥冒充你的应用)。
如果你需要在前端调用依赖客户端凭据令牌的API,正确的做法是:
- 搭建一个后端服务(比如用Node.js + msal-node),在后端通过
ConfidentialClientApplication和acquireTokenByClientCredential获取令牌 - 前端React应用调用自己的后端服务,由后端转发请求到目标API,或者后端把令牌安全地返回给前端(注意令牌的有效期和存储安全)
另外,你当前用acquireTokenSilent需要用户信息,是因为这个API是针对已登录用户的静默令牌刷新,属于用户上下文的认证流程,和客户端凭据模式完全不同。
内容的提问来源于stack exchange,提问作者Kotana Sai
相关产品推荐
相关产品推荐

