- [공통] 인증 상태를 확인하는 Listener
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
console.log('User is signed in.');
// TODO 인증이 되어있거나 성공했을 경우 했을때 수행할 Code
} else {
console.log('No user is signed in.');
// TODO 인증이 되어있지 않거나 인증을 해제한 경우 수행할 Code
}
});
- [공통] 로그아웃
firebase.auth().signOut().then(function() {
console.log('Sign-out successful.');
// TODO 로그아웃 (인증 해재 = Token broken?!)을 할 경우 수행할 Code
}, function(error) {
console.log('An error happened.');
// TODO 로그아웃에 실패할 경우 수행할 Code
});
- Google Login
/* 구글 인증을 provider 변수에 대체 */
var provider = new firebase.auth.GoogleAuthProvider();
// OAuth 2.0을 사용할 경우 다음줄 주석 해제
// provider.addScope('https://www.googleapis.com/auth/plus.login');
/* provider(구글 인증) 인증으로 로그인 처리 */
firebase.auth().signInWithPopup(provider) // 팝업 대신 페이지 이동을 할 경우 signInWithRedirect로 변경
.then(function(result) { // 로그인이 성공 했을시
var token = result.credential.accessToken; // 구글 인증 완료된 Token 가져오기
var user = result.user; // 구글 인증된 유저 정보 가져오기
// TODO 구글 로그인이 성공했을 경우 수행할 코드
}).catch(function(error) { // 로그인이 실패 했을시 = 에러를 핸들링
var errorCode = error.code; // 에러 코드
var errorMessage = error.message; // 에러 메세지
console.log(errorMessage);
// TODO 구글 로그인이 실패했을 경우 수행할 코드
});
- User 객체
- 페이스북 연동하기
- 메일 가입 메소드
firebase.auth().createUserWithEmailAndPassword(signup_mail, signup_password)
.then(function(){
// 메일 회원 가입에 성공 했을때
// 자동으로 로그인 성공으로 간주 = onAuthStateChanged()가 동작함
}).catch(function(error) {
// 메일 회원 가입에 실패 했을때
console.log(error.message);
});
- 메일 인증 메소드
firebase.auth().signInWithEmailAndPassword(signin_mail, signin_password)
.then(function(){
// 메일 회원 로그인
}).catch(function(error) {
// 회원 로그인에 실패 했을 경우
console.log(error.message);
});