0
當前我使用$on('angularFireAuth:login', function(evt,auth){...get other profile info...})
在用戶登錄後填充用戶的配置文件和授權詳細信息。這些東西被添加到authService中,以後可以輕鬆訪問整個應用程序,而不必將其放入$rootscope
。 問題是這不會觸發刷新,或重新打開。由於會話令牌或其他原因,用戶仍然通過身份驗證,但他們需要重新登錄才能加載其他個人資料。使用angularFireAuth刷新時的持久性配置文件數據
這是什麼適當的解決方案? 我應該使用不是登錄的未記錄事件嗎?
這裏是我的工作的app.js:
angular.module('myApp',['firebase']).
constant({FirebaseUrl:"https://<foo>.firebaseio.com/"}).
service('authService', function authService(){
return {
isLogged:false,
name:null,
email:null,
id:null,
group:null,
err:null
}
}).
controller('AuthCtrl', function($scope, authService, angularFireAuth, angularFireCollection, FirebaseUrl){
angularFireAuth.initialize(FirebaseUrl, {scope:$scope, name:"auth"});
$scope.login = function(){
angularFireAuth.login('password', {
email: '[email protected]',
password: 'test'
});
}
$scope.$on("angularFireAuth:login",function(evt,auth){
url = FirebaseUrl + 'profiles/user-' + $scope.auth.id;
$scope.url = url;
var fbref = new Firebase(url);
fbref.once('value',function(profileSnapshot){
$scope.name = profileSnapshot.child('name').val();
$scope.group = profileSnapshot.child('group').val();
});
//set authService stuff
authService.name = $scope.name;
authService.group = $scope.group;
authService.email = $scope.auth.email;
authService.id = $scope.auth.id;
authService.isLogged = true;
});
$scope.logout = function(){
angularFireAuth.logout();
authService.email = null;
authService.id = null;
authService.isLogged = false;
authService.name = null;
authService.group = null;
}
}).
controller('NavCtrl', function($scope, authService){
});
啊,這將是一個明智的做法。你知道任何我可以用作指導的例子嗎?我仍然很漂亮。 – Bro
我會在AngularFire [showcase](http://angularfire.com/showcase.html)中挖掘一下。通過閱讀這些項目中的源代碼,您將學到很多東西。 – hiattp
https://github.com/firebase/firereader/它是。如果其中一個人除了身份驗證之外還要求授權,那將會很好。 – Bro