令牌无效,状态不匹配-仅Auth0错误Safari

在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无法访问转发以检查登录详细信息所需的状态和随机数参数,因此我们可以手动添加它,以使身份验证流正常工作。

login = () => {
    this.authservice.authorize(
      {
        nonce: ${randomString},
        state: ${randomString},
      }
    );
  }

handleAuthentication = (onSuccessCallback, onErrorCallback) => {
  this.authservice.parseHash(
    {nonce: ${randomString}, state: ${randomString},
      (err, result) => {
        // some code
       }
     );
   };

希望它也适用于您!!

相关文章