0
방금 새 프로젝트를 시작했고 인증을 받고 있습니다. 전자 메일, Google 또는 github을 사용하여 사용자를 로그인 할 수 있습니다. 로그인을 처리하고 로그 아웃, 항상 순간 누군가의 로그인 onAuthStateChanged()
firebase에서 성공적으로 로그인 한 후 어떻게 사용자를 리디렉션합니까?
//Handle Account Status
firebase.auth().onAuthStateChanged(user => {
if(user) {
window.location = 'home.html';
}
});
user
를 사용하려면
var config = {
apiKey: "asdfasdfasdf",
authDomain: "asdfasdfasdf",
databaseURL: "asdfasdfasdf",
storageBucket: "asdfasdfasdf",
};
firebase.initializeApp(config);
//The stuff
var logine = document.getElementById("logine");
var reggy = document.getElementById("reggy");
var usr = document.getElementById("usr");
var pwd = document.getElementById("pwd");
var reset = document.getElementById("forgot");
var google = document.getElementById("google");
var logout = document.getElementById("logout");
var github = document.getElementById("github");
//Login event
function loginEvent(){
//Retreive the email and dat pwd
var email = usr.value;
var password = pwd.value;
var auth = firebase.auth();
//User signs in
var promise = auth.signInWithEmailAndPassword(email,password).catch(function(error){
//Handle any errors here
var errorCode = error.code;
var errorMessage = error.message;
if (errorCode === 'auth/wrong-password'){
alert('Get the password right');
} else {
alert(errorMessage);
}
});
promise.catch(e => console.log(e.message));
if (email.length < 12){
document.getElementById("bademail").classList.remove("hide");
}
if(password.length < 6){
document.getElementById("bademail").classList.remove("hide");
}
}
//Register event
function registerEvent(){
var email = usr.value;
var password = pwd.value;
var auth = firebase.auth();
//User signs in
// TODO: Check for email
var promise = auth.createUserWithEmailAndPassword(email, password).catch(function(error){
//Handle any errors here
var errorCode = error.code;
var errorMessage = error.message;
if(errorCode === 'auth/weak-password'){
alert('All passwords are must be 6 characters or more')
} else {
alert(errorMessage);
}
});
promise
.catch(e => console.log(e.message));
if (email.length < 12){
document.getElementById("bademail").classList.remove("hide");
}
}
function logoutEvent(){
firebase.auth().signOut();
}
//Signing in with Google
function googleAuth(){
//Google Auth
var provider = new firebase.auth.GoogleAuthProvider();
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;
// ...
}).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;
// ...
});
}
//Signing in with github
function githubAuth(){
var provider = new firebase.auth.GithubAuthProvider();
firebase.auth().signInWithPopup(provider).then(function(result) {
// This gives you a GitHub Access Token. You can use it to access the GitHub API.
var token = result.credential.accessToken;
// The signed-in user info.
var user = result.user;
// ...
}).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;
// ...
});
}
//Password reset email
function sendPasswordReset() {
var email = document.getElementById('usr').value;
// [START sendpasswordemail]
firebase.auth().sendPasswordResetEmail(email).then(function() {
// Password Reset Email Sent!
// [START_EXCLUDE]
alert('We sent the email so check tu inbox');
// [END_EXCLUDE]
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// [START_EXCLUDE]
if (errorCode == 'auth/invalid-email') {
alert(errorMessage);
} else if (errorCode == 'auth/user-not-found') {
alert(errorMessage);
}
console.log(error);
// [END_EXCLUDE]
});
// [END sendpasswordemail];
}
//Realtime listener
firebase.auth().onAuthStateChanged(firebaseUser => {
if(firebaseUser){
console.log(firebaseUser);
document.getElementById("logout").classList.remove('hide');
window.location("index.html");
}else{
console.log("GET OUT KID");
document.getElementById("logout").classList.add('hide');
reset.addEventListener('click', sendPasswordReset, false);
google.addEventListener('click', googleAuth, false);
logine.addEventListener('click', loginEvent, false);
reggy.addEventListener('click', registerEvent, false);
logout.addEventListener('click', logoutEvent, false);
github.addEventListener('click', githubAuth, false);
}
});
역시 각도 2로 작동합니다. :) thanks :) – Blueblazer172