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/
   232   233   234   235   236   237   238   239   240   241   242