fix: login với Google Oauth lỗi token invite
This commit is contained in:
@@ -20,6 +20,21 @@ export const JoinTourPage: React.FC<JoinTourPageProps> = ({ onLoginSuccess, onGo
|
||||
// Guard chống React StrictMode chạy effect 2 lần trong dev mode
|
||||
const hasJoinedRef = useRef(false);
|
||||
|
||||
// Sync inviteToken from URL when modal opens to ensure fresh value
|
||||
useEffect(() => {
|
||||
if (isLoginOpen) {
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
const token = params.get('token');
|
||||
if (token) {
|
||||
setInviteToken(token);
|
||||
localStorage.setItem('pendingInviteToken', token);
|
||||
}
|
||||
}
|
||||
}, [isLoginOpen]);
|
||||
|
||||
// Check for real authenticated user (not guest)
|
||||
const hasRealToken = !!localStorage.getItem('token') && !localStorage.getItem('guest_token');
|
||||
|
||||
useEffect(() => {
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
const token = params.get('token');
|
||||
@@ -28,9 +43,10 @@ export const JoinTourPage: React.FC<JoinTourPageProps> = ({ onLoginSuccess, onGo
|
||||
if (token) {
|
||||
localStorage.setItem('pendingInviteToken', token);
|
||||
|
||||
// Nếu đã đăng nhập, tự động thực hiện join
|
||||
// Nếu đã đăng nhập (có token thực, không phải guest), tự động thực hiện join
|
||||
const systemToken = localStorage.getItem('token');
|
||||
if (systemToken && !hasJoinedRef.current) {
|
||||
const guestToken = localStorage.getItem('guest_token');
|
||||
if (systemToken && !guestToken && !hasJoinedRef.current) {
|
||||
hasJoinedRef.current = true;
|
||||
handleJoinTour(token, systemToken);
|
||||
}
|
||||
@@ -82,7 +98,7 @@ export const JoinTourPage: React.FC<JoinTourPageProps> = ({ onLoginSuccess, onGo
|
||||
onLoginSuccess(user);
|
||||
};
|
||||
|
||||
const isLoggedIn = !!localStorage.getItem('token');
|
||||
const isLoggedIn = !!localStorage.getItem('token') && !localStorage.getItem('guest_token');
|
||||
|
||||
return (
|
||||
<div className="min-h-screen flex flex-col items-center justify-center bg-gray-50 py-12 px-4 sm:px-6 lg:px-8 font-sans">
|
||||
|
||||
Reference in New Issue
Block a user