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

How to check if user is authenticated in AngularJS controller?

我在 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") }

这取决于确切的要求,但通常您会有一个 Angular 服务来跟踪用户是否经过身份验证,并且您可以在需要应用条件逻辑的任何地方注入此服务身份验证状态。

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