2016-06-25 6 views
2

Как я могу перенаправить на другую веб-страницу после входа пользователя?Как перенаправить после входа пользователя с помощью проверки Firebase?

В настоящее время, когда пользователь входит в систему, данные получаются, однако он не перенаправляет пользователя на другой веб-сайт.

Я знаю, что я должен использовать 'getRedirectResult', но может ли кто-нибудь показать мне, как его использовать и как перенаправить пользователя на другую веб-страницу, поддерживая извлеченные пользовательские данные.

Мой Javascript работа:

function toggleSignIn() { 
    if (!firebase.auth().currentUser) { 
    // [START createprovider] 
    var provider = new firebase.auth.GoogleAuthProvider(); 
    // [END createprovider] 
    // [START addscopes] 
    provider.addScope('https://www.googleapis.com/auth/plus.login'); 
    // [END addscopes] 
    // [START signin] 
    firebase.auth().signInWithPopup(provider).then(function(result) { 
     // This gives you a Google Access Token. You can use it to access the Google API. 
     var token = result.credential.accessToken; 
     // The signed-in user info. 
     var user = result.user; 
     // [START_EXCLUDE] 
     document.getElementById('quickstart-oauthtoken').textContent = token; 
     // [END_EXCLUDE] 
    }).catch(function(error) { 
     // Handle Errors here. 
     var errorCode = error.code; 
     var errorMessage = error.message; 
     // The email of the user's account used. 
     var email = error.email; 
     // The firebase.auth.AuthCredential type that was used. 
     var credential = error.credential; 
     // [START_EXCLUDE] 
     if (errorCode === 'auth/account-exists-with-different-credential') { 
     alert("You have already signed up with a different auth provider for that email."); 
     // If you are using multiple auth providers on your app you should handle linking 
     // the user's accounts here. 
     } 
    else if (errorCode === 'auth/auth-domain-config-required') { 
    alert("An auth domain configuration is required"); 
     } 
     else if (errorCode === 'auth/cancelled-popup-request') { 
      alert("Popup Google sign in was canceled"); 
     } 
     else if (errorCode === 'auth/operation-not-allowed') { 
      alert("Operation is not allowed"); 
     } 
     else if (errorCode === 'auth/operation-not-supported-in-this-environment') { 
      alert("Operation is not supported in this environment"); 
     } 
     else if (errorCode === 'auth/popup-blocked') { 
      alert("Sign in popup got blocked"); 
     } 
     else if (errorCode === 'auth/popup-closed-by-user') { 
      alert("Google sign in popup got cancelled"); 
     } 
     else if (errorCode === 'auth/unauthorized-domain') { 
      alert("Unauthorized domain"); 
     } 
     else { 
     console.error(error); 
     } 
     // [END_EXCLUDE] 
    }); 
    // [END signin] 
    } else { 
    // [START signout] 
    firebase.auth().signOut(); 
    // [END signout] 
    } 
    // [START_EXCLUDE] 
    document.getElementById('quickstart-sign-ing').disabled = false; 
    // [END_EXCLUDE] 
} 
+0

Вам не нужно извиняться за неправильное написание английского языка. Вы могли бы, однако, показать нам, что вы уже пробовали, или, по крайней мере, указать нам на документы, которые вы прочитали по теме, которую вы не поняли! – Zimano

+0

Я хочу знать, как реализовать «getRedirectResult» в этом javascript-коде. И я также использую HTML –

ответ

1

Если вы создаете приложение одной страницы стиль, вы, вероятно, не нужно перенаправить. Вместо этого вы просто измените состояние своего приложения, когда пользователь войдет в систему. Однако, если вы хотите изменить URL-адрес, вы можете просто установить расположение окна с помощью JavaScript в своем обратном вызове. Например:

window.location = '/logged_in.html' 

Обратите внимание, что на новой странице вам нужно будет слушать для государства Идента, а также:

firebase.auth().onAuthStateChanged(function(currentUser) { 
    if (currentUser) { 
    // the user is logged in, you can bootstrap functionality now 
    } 
}); 

В общем Firebase приложений на веб будет работать лучше, если вы Дон» t структурируйте ваше приложение, чтобы загружать жесткие страницы между переходами между состояниями. Все можно и идеально управлять с помощью JavaScript, не требуя дополнительной загрузки страницы.

+0

Знаете ли вы, как реализовать это в своем javascript-коде –

+0

Перенаправление работает, но оно не поддерживает извлеченные пользовательские данные. –

+0

Эй, Mulu, вы пытаетесь войти в другое происхождение, поскольку ваш знак страница? Firebase auth для Интернета - только для одного хоста. Если вы перейдете на другую веб-страницу после входа, подписанный пользователь не будет доступен. – bojeil

Смежные вопросы