加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如果用户登录了AngularJS,则重定向索引页

发布时间:2020-12-17 08:13:45 所属栏目:安全 来源:网络整理
导读:我想改变用户在访问我的网站时看到的页面。如果他们是匿名的,他们应该看到注册页面。如果他们已经登录,他们应该看到他们的仪表板。 我有一个服务,检查用户是否登录(例如检查cookie),当Angular服务加载时触发。我尝试使用$ routeProvider重定向,但是当$
我想改变用户在访问我的网站时看到的页面。如果他们是匿名的,他们应该看到注册页面。如果他们已经登录,他们应该看到他们的仪表板。

我有一个服务,检查用户是否登录(例如检查cookie),当Angular服务加载时触发。我尝试使用$ routeProvider重定向,但是当$ routeProvider正在初始化时,服务尚未触发,因此始终认为用户未登录。

初始页面加载后,我可以轻松地重定向,但是我正在努力重定向加载的第一页。任何人都可以提供如何做到这一点的建议?

确保在答案下阅读评论。当我回答这个问题时,我没有想过单元测试和设计。我只是表明,可以通过多种方式来实现预期的结果

我认为在控制器或你的app.config.run下做最好的方法。
在您的情况下,您应该创建另一个模块来检查用户登录状态。将用户登录状态检查模块注入您的应用程序模块。

以下是示例的链接,后跟app.js代码

http://plnkr.co/edit/dCdCEgLjLeGf82o1MttS

var login = angular.module('myLoginCheck',[])
  .factory('$logincheck',function () {
    return function (userid) {
      // Perform logical user logging. Check either 
      // by looking at cookies or make a call to server.
      if (userid > 0) return true;
      return false;
    };
  });

var app = angular.module('myApp',['myLoginCheck']);

app.config(function ($routeProvider,$locationProvider) {
    $routeProvider
      .when('/publicurl',{})
      .when('/loginurl',{})
      .when('/unauthorize',{})
      .otherwise({redirectTo: '/'});
  })
  .run(function ($logincheck,$location) {
    //console.log("Into run mode");
    console.log("Userid 5 is logged in: ",$logincheck(5));
    console.log("Userid 0  logged in: ",$logincheck(0));

    //now redirect to appropriate path based on login status
    if ($logincheck(0)) {
      //$location.path('/loginurl'); or          
    }
    else {
      //$location.path('/publicurl'); or 
    }
  });

app.controller('MainCtrl',function ($scope) {
  $scope.name = 'World';
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读