首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果用户已登录,如何限制后退按钮,或在angularjs中直接访问登录页面

如果用户已登录,如何限制后退按钮,或在angularjs中直接访问登录页面
EN

Stack Overflow用户
提问于 2016-08-15 18:40:03
回答 1查看 414关注 0票数 0

我正在尝试实现基本的登录,注销功能使用angular JS,在成功登录后,只有我的标题必须出现。一旦用户登录。在他注销之前,如果他尝试直接访问登录路由,它应该重定向到仪表板。

如何实现这一点呢?在这件事上我需要帮助。我在cookie中存储了访问令牌。这将让我们知道用户是否已登录。如果已登录..我的路由不应该通向登录路由。

作为参考,我添加了路由代码。

代码语言:javascript
复制
app.config(["$routeProvider",function($routeProvider){
$routeProvider
    .when("/",{
        templateUrl : 'views/home/login.html',
        controller : 'homeCtrl'
    })

    .when("/dashboard",{
        templateUrl : 'views/home/dashboard.html',
        controller : 'dashboardCtrl',
        authenticated : true
    })

    .otherwise('/',{
        templateUrl : 'views/home/login.html',
        controller : 'homeCtrl'
    })

}]);

app.run(["$rootScope","$location","authFactory",function($rootScope,$location,authFactory){

$rootScope.$auth = authFactory;
$rootScope.$on('$routeChangeStart',function(event,next,current){

    if(next.$$route.authenticated){
        var userAuth = authFactory.getAccessToken();

        if(!userAuth){

            $location.path('/');

        }
    }
});
}]);

如果用户当前已登录,我希望限制对登录页面的路由访问。

请帮帮我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-15 18:54:07

您可以像下面这样分别处理这两种情况。

代码语言:javascript
复制
var userAuth = authFactory.getAccessToken();

// Redirect to login if auth token is not available
if(next.$$route.authenticated && !userAuth) {
     $location.path('/');
}

// Redirect to dashboard if valid auth token is available and user is in an unauthenticated page (login may be)
if(!next.$$route.authenticated && userAuth) {
     $location.path('/dashboard');
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38953546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档