如何检查用户是否在AngularJS控制器中进行了身份验证?

时间:2017-01-20 18:05:45

标签: angularjs auth0

我在AngularJS 1.x.x应用中使用Auth0。

我设置应用的方式是使用div ng-if="isAuthenticated"在我的模板中显示(并隐藏)div。但是,如果用户未经过身份验证,我希望能够阻止我的控制器中的API调用。阻止这些调用的正确语法是什么?

我想我正在寻找类似的东西:

if (isAuthenticated) {
      ServerRequest.getAllPatients({
      }).then(function(resp){
        $scope.myTestData = resp
      }).catch(function(err){
        console.log(err);
      });
  } else { alert("you are not logged in") }

1 个答案:

答案 0 :(得分:0)

这取决于确切的要求,但一般情况下,您将拥有一个Angular服务,可以跟踪用户是否经过身份验证,并且您可以根据身份验证状态在需要应用条件逻辑的任何位置注入此服务。

另一种可能性是完全拒绝导航到某些路线,如果这些路线需要经过身份验证的用户而且不存在。您可以查看本文以获得一些指导(Deal with users authentication in an AngularJS web app)。