我想知道如何正确使用 msal 的重定向方法来获取 token。
我有以下函数。
function acquireTokenRedirect() {
const params = {
redirectUri: 'http://localhost:8080/admin/',
scopes: ['user.read']
};
console.log('Acquire token via redirect');
msal.acquireTokenRedirect(params);
}
还有回调
msal.handleRedirectCallback((error, response) => {
console.log('Redirect call back is called');
});
当我调用该方法时,我在Chrome控制台得到的是这样的结果。
Acquire token via redirect
Navigated to http://localhost:8080/admin/
Redirect call back is called
GET http://localhost:8080/ 404 (Not Found)
Navigated to http://localhost:8080/
为什么它会重定向到 http://localhost:8080/
当我明确告诉它重定向到 http://localhost:8080/admin/
?
MSAL 被配置为使用 redirectURI。http://localhost:8080/admin/
,并在 Azure 门户中为项目指定了相同的重定向。
相比之下: msal.loginRedirect()
重定向到正确的URI。
我想这和这个问题的解决方案有关。
为了避免额外的重定向,我需要做的是设置"navigateToLoginRequestUrl"参数在Auth配置中改为false。这就解决了我的问题。
参考。msal in React SPA - 使用从AcquireTokenRedirect接收的访问令牌。
如果有帮助,请告诉我