使用 auth0 的本地主机上的 Samesite cookie 错误
Samesite cookie error on localhost with auth0
我正在使用 auth0 在我的 React 应用程序中实现身份验证。我正在使用 useAuth0() 挂钩,
const { isAuthenticated, isLoading } = useAuth0();
我也使用
实现了登录
const { loginWithRedirect } = useAuth0();
.
.
.
<button onClick={() => loginWithRedirect()} />
当我按下按钮时,它重定向到 auth0,我可以登录。登录后,它会重定向回应用程序,并毫无问题地显示已登录的路由。然而,问题是当我在应用程序中进行任何更改时,它会重新加载,并且我会再次看到登录页面,尽管我已登录。在 Chrome 问题选项卡中它显示此消息。
我无法弄清楚为什么它在刷新时不起作用,但为什么它在登录后重定向时起作用,从昨天开始我一直在努力寻找解决方案,但到目前为止还没有成功。我遇到了 这是我能找到的最接近的问题,但它似乎没有就如何解决它给出正确的答案。
最终对我有用的是 上的答案。
内容在此,
问题是 Brave 和 Safari 都使用智能跟踪预防 (ITP),这阻止了静默身份验证的工作。
对我有用的解决方案是启用旋转刷新令牌(通过 Auth0 仪表板)并向 Auth0 提供程序提供额外的道具。
要添加的两个新道具是:useRefreshTokens={true}
和 cacheLocation="localstorage"
。
<Auth0Provider
domain={process.env.REACT_APP_AUTH0_DOMAIN}
clientId={process.env.REACT_APP_AUTH0_CLIENT_ID}
redirectUri={window.location.origin}
onRedirectCallback={onRedirectCallback}
useRefreshTokens={true}
cacheLocation="localstorage"
>
{children}
</Auth0Provider>
以下是官方文档,可了解有关轮换刷新令牌的更多信息:https://auth0.com/docs/tokens/refresh-tokens
这是解决问题的 github 问题 https://github.com/auth0/auth0-react/issues/101
我正在使用 auth0 在我的 React 应用程序中实现身份验证。我正在使用 useAuth0() 挂钩,
const { isAuthenticated, isLoading } = useAuth0();
我也使用
实现了登录const { loginWithRedirect } = useAuth0();
.
.
.
<button onClick={() => loginWithRedirect()} />
当我按下按钮时,它重定向到 auth0,我可以登录。登录后,它会重定向回应用程序,并毫无问题地显示已登录的路由。然而,问题是当我在应用程序中进行任何更改时,它会重新加载,并且我会再次看到登录页面,尽管我已登录。在 Chrome 问题选项卡中它显示此消息。
我无法弄清楚为什么它在刷新时不起作用,但为什么它在登录后重定向时起作用,从昨天开始我一直在努力寻找解决方案,但到目前为止还没有成功。我遇到了
最终对我有用的是
内容在此,
问题是 Brave 和 Safari 都使用智能跟踪预防 (ITP),这阻止了静默身份验证的工作。
对我有用的解决方案是启用旋转刷新令牌(通过 Auth0 仪表板)并向 Auth0 提供程序提供额外的道具。
要添加的两个新道具是:useRefreshTokens={true}
和 cacheLocation="localstorage"
。
<Auth0Provider
domain={process.env.REACT_APP_AUTH0_DOMAIN}
clientId={process.env.REACT_APP_AUTH0_CLIENT_ID}
redirectUri={window.location.origin}
onRedirectCallback={onRedirectCallback}
useRefreshTokens={true}
cacheLocation="localstorage"
>
{children}
</Auth0Provider>
以下是官方文档,可了解有关轮换刷新令牌的更多信息:https://auth0.com/docs/tokens/refresh-tokens
这是解决问题的 github 问题 https://github.com/auth0/auth0-react/issues/101