Page 237 - AngularJS权威教程
P. 237
18.31 认证事件 217
18.31 认证事件 1
使用AngularFire认证,我们能够使用多个可改变用户认证状态的方法,这些方法是$login()、
$logout()和$createUser()。 2
在AngularFire中,认证状态被认为是全局状态,下面的每个认证方法都会被在$rootScope
上广播。既然几乎所有作用域都是从 $rootScope继承的,我们可以从任意控制器调用 3
$scope.on(...)。
4
全局认证意味着不会有多个用户同时登录到应用的同一个实例。例如,全局认证阻
止了两个用户在同一个浏览器实例中同时登录到Gmail。
5
$firebaseAuth:login 用户成功登陆时会触发这个事件。它会用两个参数来触发:event
和user对象。
6
$rootScope.$on("$firebaseAuth:login", function(evt, user) {
console.log("User " + user.id + " successfully logged in!");
});
7
$firebaseAuth:logout 用户注销时触发这个logout事件。这个事件使用一个event参数来
触发。
8
$rootScope.$on("$firebaseAuth:logout", function(evt) {
console.log("User logged out!");
}); 9
$firebaseAuth:error 当调用$login()或者$logout()的过程中产生错误时,error事件
会触发。这个事件使用一个error参数来触发。 10
$login(token, [options]) 我们使用$login()方法来登录一个用户。通常在用户点击登
录按钮时使用它,如下所示: 11
<a href="#"
ng-hide="auth.user" 12
ng-click="auth.$login('persona')">Login</a>
$login()函数最多可带两个参数:
13
tokenOrProvider (string/JWT token) 如果我们正在使用Firebase Simple Login,可以简
单地传入一个提供者名称,比如facebook或者persona。如果我们想用使用Custom Login流程,就
需要传入一个合法的JWT令牌了。 14
options (object) 我们只在使用Simple Login时用到这个options参数,提供的这个
options会不经修改地传递给Simple Login方法。 15
对于password提供者来说,我们会需要把username和password作为对象提供。
16
更多关于user对象的信息,参阅AngularFire.com 的Firebase文档。
①
17
—————————— 18
① http://angularfire.com/