Msal 响应中的访问令牌为空-Azure AD B2C
Access token is null in Msal response-Azure AD B2C
我有一个 SPA Vue.js 应用程序,使用 msal.js 连接 Azure AD B2C 以获取 ID、访问令牌并使用访问令牌进一步调用我的 API(这是一个 .净核心 webApi)。到目前为止,我使用的是内置用户流,现在我必须更改为自定义策略。我认为我无法通过自定义策略获得访问令牌。
msal 响应中的访问令牌为空。
onToken:(ctx,error,response) => ...
我已经在 SPA 和 Azure 中定义了我的默认范围。如果我 运行 Azure AD b2c 中的自定义策略并设置访问令牌并 select jwt.msas 回复 Url,我能够在响应中看到访问令牌。所以我认为自定义策略没有错。所以看起来我需要使用 msal 对 Azure 进行一些额外的调用并获取访问令牌。
我找不到任何好的文档,我已经在 msal 中尝试了 AquireToken,但没有用。
我不确定是否必须将初始 msal 身份验证调用中的响应类型设置为 'code, id-token' 或 'id-token token'?或者怎么做?如果不是,我可以做些什么来获取访问令牌,因为我在前端并使用隐式流。
Response type should be or include token.
这 simple code 就是您获取访问令牌所需的一切(响应类型令牌是隐式的):
function authCallback(error, response) {
// Handle redirect response
}
userAgentApplication.handleRedirectCallback(authCallback);
const accessTokenRequest: AuthenticationParameters = {
scopes: ["{your b2c exposed api scope}"]
}
userAgentApplication.acquireTokenSilent(accessTokenRequest).then(function (accessTokenResponse) {
// Acquire token silent success
// Call API with token
let accessToken = accessTokenResponse.accessToken;
}).catch(function (error) {
//Acquire token silent failure, and send an interactive request
console.log(error);
if (error.errorMessage.indexOf("interaction_required") !== -1) {
userAgentApplication.acquireTokenRedirect(accessTokenRequest);
}
});
我有一个 SPA Vue.js 应用程序,使用 msal.js 连接 Azure AD B2C 以获取 ID、访问令牌并使用访问令牌进一步调用我的 API(这是一个 .净核心 webApi)。到目前为止,我使用的是内置用户流,现在我必须更改为自定义策略。我认为我无法通过自定义策略获得访问令牌。 msal 响应中的访问令牌为空。
onToken:(ctx,error,response) => ...
我已经在 SPA 和 Azure 中定义了我的默认范围。如果我 运行 Azure AD b2c 中的自定义策略并设置访问令牌并 select jwt.msas 回复 Url,我能够在响应中看到访问令牌。所以我认为自定义策略没有错。所以看起来我需要使用 msal 对 Azure 进行一些额外的调用并获取访问令牌。 我找不到任何好的文档,我已经在 msal 中尝试了 AquireToken,但没有用。 我不确定是否必须将初始 msal 身份验证调用中的响应类型设置为 'code, id-token' 或 'id-token token'?或者怎么做?如果不是,我可以做些什么来获取访问令牌,因为我在前端并使用隐式流。
Response type should be or include token.
这 simple code 就是您获取访问令牌所需的一切(响应类型令牌是隐式的):
function authCallback(error, response) {
// Handle redirect response
}
userAgentApplication.handleRedirectCallback(authCallback);
const accessTokenRequest: AuthenticationParameters = {
scopes: ["{your b2c exposed api scope}"]
}
userAgentApplication.acquireTokenSilent(accessTokenRequest).then(function (accessTokenResponse) {
// Acquire token silent success
// Call API with token
let accessToken = accessTokenResponse.accessToken;
}).catch(function (error) {
//Acquire token silent failure, and send an interactive request
console.log(error);
if (error.errorMessage.indexOf("interaction_required") !== -1) {
userAgentApplication.acquireTokenRedirect(accessTokenRequest);
}
});