当前位置: 首页 > 面试题库 >

如果未通过身份验证,则在所有路由上重定向以登录

齐建安
2023-03-14
问题内容

如果有人在未通过身份验证的情况下尝试打其他路线,如何重定向到登录页面?在AngularJS中是否有“最佳”方法来做到这一点?

似乎是一个常见问题,但我似乎找不到解决方法。预先感谢您的帮助。


问题答案:

最好的方法是设置一个“ $ routeChangeStart”侦听器,该侦听器检查“ authProvider”服务功能以验证是否有用户登录。在我们的“
app.js”或单独的文件中:

angular.module('myApp')
     .run(['$rootScope', '$location', 'authProvider', function ($rootScope, $location,     authProvider) {
        $rootScope.$on('$routeChangeStart', function (event) {

        if (!authProvider.isLoggedIn()) {
          console.log('DENY : Redirecting to Login');
          event.preventDefault();
          $location.path('/login');
        }
        else {
          console.log('ALLOW');
        }
  });
}])

然后为我们的“ authProvider”服务:

angular.module('myApp')
  .factory('authProvider', function() {
    var user;
      return {
        setUser : function(aUser){
          user = aUser;
        },
        isLoggedIn : function(){
          return(user)? user : false;
        }
      };
  });

谢谢@MohammadAwwaad



 类似资料:
  • 问题内容: 编辑:忘记提及我与AngularJs在一起仅一周了,因此,如果您看到某些东西,您认为应该做得更好,并且与问题无关,请随时在评论部分告诉我。 好的,所以我有我的身份验证控制器和提供程序,由于它们与问题范围无关,因此将不显示。然后,我有一个拦截器来检查拨打电话时用户是否已通过身份验证。如果是这样,我将请求的标头设置为包括用户的Token(如果没有),则将用户重定向到登录页面,甚至不向服务器

  • Flatter Web(Navigator 2.0/Router API):如何处理经过身份验证的路由及其成功身份验证后的重定向? e、 g.我的系统中有这种路由 若用户直接打开这个URL,我想让用户先登录,那个么路由将被重定向到。。 一旦登录,我想用户导航以前打开的网址,如果有任何其他主页。。 似乎这种事情可能会有所帮助,任何想法——我们如何才能实现类似的事情?https://stackover

  • 我试图利用从redux store到HOC的状态来允许或拒绝我*应用程序中的用户,例如私人路由。 我下面的文档从反应路由器,它的一半工作。我的问题是,当我转到网址或刷新新认证的路由时,如果没有认证,我会被重定向。点击导航栏工作,见下面我的gif。 *我也在使用Next.JS,但无法让路由系统使用语义UI React。这就是我使用React路由器的原因。 这是我的全部内容: My HOC Priva

  • 问题内容: 我是AngularJS的新手,在以下情况下我对如何使用angular-“ ui-router”感到有些困惑: 我正在构建一个包含两个部分的Web应用程序。第一部分是带有登录和注册视图的主页,第二部分是仪表板(成功登录后)。 我为home部分创建了一个带有角度应用程序和配置的,用于处理和查看,还有一个针对仪表板部分的文件,其应用程序和配置用于处理许多子视图。 现在,我完成了仪表板部分,并

  • 我的管理员控制器扩展了控制器类,在那里我使用方法加载视图页面并传递保护。config/auth.php也通过添加管理员保护和提供程序进行了修改。在app/Actions/Fortify文件夹中,我添加了AttemptToAuthenticate和ReDirectIfTwoFactorAuthenticate类,并更改了命名空间。我的管理员控制器还扩展了Guard。用户的重定向中间件和管理员的重定向

  • 在不生成Laravel默认身份验证控制器的情况下,我创建了自己的登录和注册控制器。 我的路线是这样的 用于登录 登记 一切都很好。现在我需要一件事。每当我放置中间件时,一个未经身份验证的用户将被重定向到我的自定义登录页面路由到。 如何做到这一点?