getAuth()
이 과거에 expires
인 객체를 반환 할 가능성이 있습니까?Firebase의 getAuth()가 만기가 지난 객체를 반환하는 이유
나는 expires
과거에있는 경우, getAuth()
가 null
가 반환 인상이었다. 하지만 내가 틀렸어. 여기
나는 내가 틀렸다 증명하는 방법입니다
var resolve = {
auth: function($q) {
var defer = $q.defer();
var authData = rootRef.getAuth();
if (authData === null) {
...
} else {
var now = new Date()/1000;
console.log('Authenticated!');
console.log(' Auth expiry: ' + authData.expires);
console.log(' Now: ' + now);
console.log('Is expiry in the past? ' + (authData.expires < now ? 'YES' : 'NO'));
defer.resolve();
}
return defer.promise;
}
};
여기 출력입니다 : 나는 위의 출력을받은 후 페이지를 새로 고치면
Authenticated!
Auth expiry: 1415276774
Now: 1415276804.45
Is expiry in the past? YES
, getAuth()
반환 null
예상대로 .
내가 문제를 재현하려면
이- 닫고 응용 프로그램 (브라우저의 탭) 이 전에 로그인 세션 (I 1 개 세션 실험 만료를 이메일과 비밀번호
- 를 사용하여 로그인하지만, 같은 일이 발생을 다른 길이 세션)에 로그인 세션까지
- 기다립니다이 시점에서 실행 위의 코드를
- 를 열고 응용 프로그램을 (만료) 위의 출력을 생성
아이디어가 있으십니까?
클라이언트 시계가 Firebase 서버와 동기화되지 않았을 수 있습니다. getAuth() 메서드를 반복하거나 onAuth() 콜백을 사용하면 결국 로그 아웃 이벤트가 표시됩니까? 이 테스트를 수행하는 동안 대시 보드의 로그인 및 인증 화면에서 세션 길이 설정을 변경합니까? - 클라이언트가 인증 할 때마다 예상 만료 시간을 캐시 할 수 있다고 생각합니다. –
@Chris : 세션 길이가 동일하게 유지되며 문제를 재현 할 때 변경되지 않습니다. 'onAuth()'콜백을 추가했는데, 처음에는 ** 로그인 ** 이벤트 (과거에는 만기가 있음)와 ** 로그 아웃 ** 이벤트를 볼 수 있습니다. 나는 ** 로그인 ** 이벤트가 만료가 과거에 일어나지 않아야한다고 생각합니다. –