是否有可能会在过去getAuth()
返回一个对象?expires
我的印象是,如果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
要重现我所做的问题:
- 使用电子邮件和密码登录
- 关闭应用程序(浏览器的选项卡)之前(我尝试了 1 分钟的会话,但其他长度的会话也一样)
- 等到登录会话过期
- 打开应用程序(此时上面的代码运行并产生上面的输出)
有任何想法吗?