该问题的原因可能是由于新的Web标准中同步的跨域请求通常在浏览器中被禁止,这导致了loginWithRedirect()无法完成回调重定向的过程。为了解决此问题,可以尝试在Auth0管理面板中启用'重定向URI片段”,并在Auth0设置和redirectUri参数中使用#(片段标识符)而非?(查询标识符)。
以下是使用loginWithRedirect()来授权用户并获取认证令牌的代码示例:
auth0.authorize({ redirectUri: window.location.href + '#/callback', responseType: 'token id_token', scope: 'openid profile email', audience: '{API_IDENTIFIER}' });
另外,可以使用以下代码示例通过loginWithPopup()在弹出窗口中授权用户并获取认证令牌:
auth0.popup.authorize({ redirectUri: window.location.href + '#/callback', responseType: 'token id_token', scope: 'openid profile email', audience: '{API_IDENTIFIER}' }, function(err, authResult) { if (err) { console.log(err); return; } console.log(authResult); });
在此示例中,popup.authorize()方法会弹出一个新的窗口来提供用户授权和认证令牌的获取过程,并调用回调函数来处理授权结果。需要注意的是,这里也要使用#而非?作为redirectUri参数的链接片段标识符。