Page 236 - AngularJS权威教程
P. 236

216  第 18 章  服务器通信


                 $bind()方法返回了一个promise,它会在AngularFire从收到服务器的初始数据之后执行。这
             个promise会被用一个unbind方法执行,unbind在被调用时,可以解除三向绑定。这个关联的解
             除对于优化网站和移除不必要的监控是很有帮助的。


             18.30 用 AngularFire 进行认证


                 Firebase提供了一个简单的开箱即用的客户端认证策略。

                 使用Firebase的Simple Login或者Custom Login方法,我们可以轻松地用AngularFire给应用添
             加用户认证。

                 如果我们有自己的服务器,想要控制自己的认证过程,或者我们想把自己的认证过程跟
             Firebase集成,Custom Login是最适合用的。

                 如果我们想用Firebase来管理我们所有的认证,可以使用Simple Login,它支持Facebook、
             Twitter、Github、Persona和Email/Password认证。

                 通过在应用模块中定义Firebase为依赖项的方式,我们在控制器和服务中获得了对
             $firebaseAuth服务的访问权。
                 angular.module('myApp')
                 .controller("MyAuthController", function($scope, $firebaseAuth) {
                     // 在这里定义我们的控制器
                 });
                 $firebaseAuth服务方法带有两个参数:一个Firebase引用和一个可选的选项对象。为了能自
             定义使用Firebase进行认证的方式,这个对象可以包含如下属性。

                  path:如果authRequired属性在$routeProvider中被设置成true,用户又没有登录的话,
                   用户会被重定向到path属性指向的地址。
                  simple: $firebaseAuth默认需要包含firebase-simple-login.js文件,如果simple的值被设
                   置为false,就没这个要求了,但只有自定义登录功能会被启用,我们不能使用简单认
                   证了。
                  callback:当认证状态发生变化的时候,Firebase会调用这个函数。我们可以把这个回调
                   作为在$rootScope上触发的事件的替代,这是处理认证状态变更的推荐方式。

                 angular.module('myApp')
                 .controller("MyAuthController", function($scope, $firebaseAuth) {
                     var ref = new Firebase(URL);
                     $scope.auth = $firebaseAuth(ref);
                     // $scope.auth.user在用户登录之前都是null
                 });
                 $firebaseAuth()方法返回的对象包含一个叫做user的属性。如果用户注销了,user就被
             设置为null,一旦他登录了,user变成包含用户详情的一个对象。我们会在下面探讨登录的
             检测。

                     用户详情对象的内容会随着所使用认证方式的不同而有所区别,但至少,它会有一
                 个user id和provieder name。
   231   232   233   234   235   236   237   238   239   240   241