无法覆盖 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.
我正在使用 "@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.