Lỗi cookie Samesite trên localhost với auth0
Tôi đang sử dụng auth0 để triển khai xác thực trong ứng dụng phản ứng của mình. Tôi đang sử dụng hook useAuth0 () như sau,
const { isAuthenticated, isLoading } = useAuth0();
Tôi cũng đã triển khai đăng nhập bằng
const { loginWithRedirect } = useAuth0();
.
.
.
<button onClick={() => loginWithRedirect()} />
Khi tôi nhấn vào nút, nó chuyển hướng đến auth0 và tôi có thể đăng nhập. Sau khi đăng nhập, nó chuyển hướng trở lại ứng dụng và hiển thị các tuyến đường đã đăng nhập mà không gặp bất kỳ sự cố nào. Tuy nhiên, vấn đề là khi tôi thực hiện bất kỳ thay đổi nào trong ứng dụng, nó sẽ tải lại và tôi được hiển thị lại trang đăng nhập, mặc dù tôi đã đăng nhập. Trong tab Sự cố Chrome, nó hiển thị thông báo này.
Tôi không thể tìm ra lý do tại sao nó không hoạt động khi làm mới, nhưng tại sao nó hoạt động trên chuyển hướng sau khi đăng nhập và tôi đã cố gắng tìm giải pháp từ hôm qua, nhưng không may mắn cho đến nay. Tôi đã gặp Tìm cookie gây ra cảnh báo SameSite của Chrome, đây là câu hỏi gần nhất mà tôi có thể tìm thấy, nhưng dường như nó không đưa ra câu trả lời thích hợp về cách giải quyết nó.
Trả lời
Cuối cùng, điều làm việc cho tôi là một câu trả lời cho một câu hỏi SO khác .
Đây là nội dung,
Vấn đề là Brave và Safari đều sử dụng Ngăn chặn Theo dõi Thông minh (ITP), ngăn chặn xác thực im lặng hoạt động.
Giải pháp phù hợp với tôi là bật mã làm mới xoay vòng (thông qua bảng điều khiển Auth0) và cung cấp các đạo cụ bổ sung cho nhà cung cấp Auth0.
Hai đạo cụ mới để thêm vào là: useRefreshTokens={true}và 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>
Dưới đây là các tài liệu chính thức để tìm hiểu thêm về cách xoay vòng các mã làm mới: https://auth0.com/docs/tokens/refresh-tokens
Và đây là vấn đề github đã giải quyết vấn đề https://github.com/auth0/auth0-react/issues/101