我目前正在使用AngularFire的$authWithOAuthPopup
方法。在注销时,Firebase会话已结束,但OAuth仍然存在(根据预期的功能)。 link
Link Explaining oAuth is separate workflow from app logout
但是,如果发生这种情况,$authWithOAuthPopup
不允许其他用户在重新登录时输入凭据。
人们是否成功实施了允许其他人登录的解决方案?有人会如何允许新用户输入新的登录凭据而不是自动使用旧信息?
当前行为:将用户退出>点击登录>应用程序使用以前的FB会话信息登录。 通缉行为:登出用户>点击登录>询问用户的FB凭证>登录。
$scope.logout = function () {
delete $localStorage.storageAuth;
Auth.$unauth();
$state.go('user.signin');
};
谢谢:)
答案 0 :(得分:1)
我们可以看到登录/验证代码......您正在使用$ localStorage.storageAuth做什么,因为它将为您管理用户的登录状态,所以您真的不需要它用于firebase。 ..我相信......
but you can try and clear the cookies/session information
// _blank loads in background, might need clearsessioncache
var ref = window.open(url, '_blank', 'location=no,toolbar=no,clearcache=yes');
// attach a listener to the window which closes it when complete
ref.addEventListener('loadstop', function(event) {
ref.close();
});
答案 1 :(得分:0)
代表Aaron Saunder上面的评论,通过清除应用程序缓存,我们可以提示输入新的用户信息(至少在Android Marshmellow API> 23上)。我还没有在iPhone上确认过。
在网络浏览器上进行开发时,它没有表现出这种行为,所以我想进一步的测试将需要看看何时可以接受。
使用ngCordova $cordovaInAppBrowser
:
$scope.logout = function () {
var options = {
location: 'yes',
clearcache: 'yes',
toolbar: 'no',
hidden: 'yes'
};
$rootScope.$on('$cordovaInAppBrowser:loadstop', function(e, event){
$cordovaInAppBrowser.close();
});
$cordovaInAppBrowser.open('http://www.google.com', '_blank', options);
Auth.$unauth();
$state.go('user.signin');
};