无法覆盖 auth0-react 中的范围选项

Can not override scope option in auth0-react

我正在使用 "@auth0/auth0-react": "^1.5.0" 包进行 pkce 身份验证。 我尝试设置 scope,但似乎没有用:

// method1 which I've tried
   <Auth0Provider
      domain={urls().oauth}
      clientId={apiConstants.clientId}
      redirectUri={urls().redirect}
      scope="read"
    >
          <AppRouter />
    </Auth0Provider>

// method2 in the loginWithRedirect
import { useAuth0 } from '@auth0/auth0-react';

function Auth0LoginButton() {
  const { isAuthenticated, loginWithRedirect } = useAuth0();

  return isAuthenticated ? null : (
    <button onClick={() => loginWithRedirect({ scope: "read" })}>
      Log in via Auth0 PKCE
    </button>
  );
}

export default Auth0LoginButton;

也尝试了两种方法一起,但没有进展。输出将始终为 scope=openid profile email read。 我该如何解决这个问题?

正如我们在 auth0-react 的 github、here is the maintainer answers 中所讨论的那样:

您在 Provider 中或调用 loginWithRedirect 时设置的任何范围都将附加到配置的默认范围,默认情况下设置为 openid profile email

Advanced Options 中所述,如果您不需要这些 default scope,您可以使用以下方法覆盖它们:

<Auth0Provider  advancedOptions={{defaultScope: ''}}>...</Auth0Provider>

请记住,无论您将什么用作 defaultScope,都会始终添加 openid,因为它是 required.