令牌无效,状态不匹配 - 仅限 Auth0 错误 Safari
Invalid token, state does not match - Auth0 Error Safari only
在 Safari 中使用 Auth0 库中的 parseHash 函数时出现错误
相同的代码在 chrome 中运行良好。可以做些什么来解决这个问题?
handleAuthentication = (onSuccessCallback, onErrorCallback) => {
console.log('handle auth', this.authservice);
this.authservice.parseHash((err, authResult) => {
console.log('authresult inside', authResult, 'error', err);
if (authResult && authResult.accessToken && authResult.idToken) {
this.setSession(authResult, onSuccessCallback);
} else if (err) {
// onErrorCallback();
}
});
};
经过大量的研究和文章探索,我终于找到了解决这个问题的办法。
由于 auth0 无法访问转发检查登录详细信息所需的 state 和 nonce 参数,因此我们可以手动将其添加到身份验证流程中工作没有任何问题。
login = () => {
this.authservice.authorize(
{
nonce: ${randomString},
state: ${randomString},
}
);
}
handleAuthentication = (onSuccessCallback, onErrorCallback) => {
this.authservice.parseHash(
{nonce: ${randomString}, state: ${randomString},
(err, result) => {
// some code
}
);
};
希望它对你也有用!!
在 Safari 中使用 Auth0 库中的 parseHash 函数时出现错误
相同的代码在 chrome 中运行良好。可以做些什么来解决这个问题?
handleAuthentication = (onSuccessCallback, onErrorCallback) => {
console.log('handle auth', this.authservice);
this.authservice.parseHash((err, authResult) => {
console.log('authresult inside', authResult, 'error', err);
if (authResult && authResult.accessToken && authResult.idToken) {
this.setSession(authResult, onSuccessCallback);
} else if (err) {
// onErrorCallback();
}
});
};
经过大量的研究和文章探索,我终于找到了解决这个问题的办法。 由于 auth0 无法访问转发检查登录详细信息所需的 state 和 nonce 参数,因此我们可以手动将其添加到身份验证流程中工作没有任何问题。
login = () => {
this.authservice.authorize(
{
nonce: ${randomString},
state: ${randomString},
}
);
}
handleAuthentication = (onSuccessCallback, onErrorCallback) => {
this.authservice.parseHash(
{nonce: ${randomString}, state: ${randomString},
(err, result) => {
// some code
}
);
};
希望它对你也有用!!