3
응용 프로그램에 AngularFire2를 사용하고 있고 Firebase에서 작동하는 등록/로그인 기능을 사용하고 있지만 페이지를 새로 고칠 때마다 로그인 상태는 다음과 같습니다. 재설정하고 지속되지 않습니다. 나는 아주 작은 것을 놓치고 있다고 느낄지라도 이것을 수행하는 기능을 찾을 수 없다.AngularFire2 - 페이지를 새로 고친 후 로그인 상태를 유지하는 방법
AngularFireAuth
을 사용하여 페이지로드를 확인할 수 있습니까? 사전에
import { Injectable } from '@angular/core';
import {Observable, Subject, BehaviorSubject} from "rxjs/Rx";
import {AngularFireAuth, FirebaseAuthState} from "angularfire2";
import {AuthInfo} from "./auth-info";
import {Router} from "@angular/router";
@Injectable()
export class AuthService {
static UNKNOWN_USER = new AuthInfo(null);
authInfo$: BehaviorSubject<AuthInfo> = new BehaviorSubject<AuthInfo>(AuthService.UNKNOWN_USER);
constructor(private auth: AngularFireAuth, private router:Router) {
}
login(email, password):Observable<FirebaseAuthState> {
return this.fromFirebaseAuthPromise(this.auth.login({email, password}));
}
signUp(email, password) {
return this.fromFirebaseAuthPromise(this.auth.createUser({email, password}));
}
fromFirebaseAuthPromise(promise):Observable<any> {
const subject = new Subject<any>();
promise
.then(res => {
const authInfo = new AuthInfo(this.auth.getAuth().uid);
this.authInfo$.next(authInfo);
subject.next(res);
subject.complete();
},
err => {
this.authInfo$.error(err);
subject.error(err);
subject.complete();
});
return subject.asObservable();
}
logout() {
this.auth.logout();
this.authInfo$.next(AuthService.UNKNOWN_USER);
this.router.navigate(['/login']);
}
}
감사합니다 :
여기 내 인증 제공자 코드입니다!
cartant, 이것은 아마 당신이 나를 도왔 5 시간입니다. 언젠가 너를 찾을거야 .... 너를 안아 줄거야. 너무 많이 트릭을 했어. 너는 최고야! –