我们的应用程序使用带有 PKCE 的授权代码流,这是使用 MSAL-React 包https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-reactand实现的,它在Azure B2C 活动目录。
我们目前通过让用户输入用户名和密码来对用户进行身份验证,这些用户名和密码被交换为一个access_token
然后随每个请求一起发送。这样后端就知道要向前端发送什么。
我们有一个新要求,归结为我们access_token
从另一种方法中获取。这是为了促进一些我们最初不知道的新功能。
我们目前使用此代码设置令牌作为流程的一部分
msalInstance
.acquireTokenSilent(tokenRequest)
.then(async (tokenResponse) => {
setToken(tokenResponse.accessToken)
})
但是我们现在需要手动设置这个令牌(不用担心我们如何获得这个令牌,假设我们有一个)
MSAL 有没有办法手动设置我们传递给它的令牌?
所以这样的事情会很棒(我知道这不存在)
comst token = {} // our token object which would be correct
msalInstance
.manuallyGetToken(token)
.then(async (tokenResponse) => {
setToken(tokenResponse.accessToken)
})
MSAL 的“黑匣子”性质被证明是困难的,因为它向我们隐藏了 OAuth 的内部,这很好,直到您需要稍微偏离它应该工作的方式。