如果已经使用angularjs登录,如何避免显示登录页面?

威姆·德布劳威

我正在用AngularJS构建应用程序。我具有身份验证功能,当用户未被授权时,他将被重定向到#/login显示登录表单的位置。

但是,当用户通过身份验证并手动转到#/login时,尽管该用户仍处于登录状态,但仍会再次显示登录页面。在这种情况下,是否可以将其定向到主页?

这是我进行重定向的方式:

$routeProvider
       .when( '/ds', {
            templateUrl: 'partials/datasheets-list.html',
            controller: 'DatasheetsListCtrl'
        } )
        .when( '/ds/:datasheetId', {
            templateUrl: 'partials/datasheet-detail.html',
            controller: 'DatasheetDetailCtrl'
         } )                             
         .when( '/login', {
            templateUrl: 'partials/login.html',
            controller: 'LoginController'
          } )
         .otherwise( {
            redirectTo: '/ds'
          } );

这是代码LoginController

var datasheetsControllers = angular.module( 'datasheetsControllers', ['ngCookies', 'datasheetsServices'] );

datasheetsControllers.controller( 'LoginController', ['$scope', '$rootScope', '$location', '$http', '$cookieStore', 'LoginService', function ( $scope, $rootScope, $location, $http, $cookieStore, LoginService )
{

    $scope.login = function ()
    {
        LoginService.authenticate( $.param( {username: $scope.username, password: $scope.password} ), function ( user )
        {
            $rootScope.user = user;
            // Authenticate AngularJS Ajax calls
            $http.defaults.headers.common[ xAuthTokenHeaderName ] = user.token;

            // Authenticate jQuery Ajax calls
            var headers = {};
            headers[xAuthTokenHeaderName] = user.token;
            $.ajaxSetup({
                            headers: headers
                        });
            $cookieStore.put( 'user', user );
            $location.path( "/" );
        } );
    };
}] );
路加

我认为通常的做法是听$routeChangeStart事件。

$scope.$on('$routeChangeStart', function(scope, next, current){
   //...
});

在这里,您可以询问下一个路径是否为登录名,然后可以检查该用户是否已经登录了auth服务。如果是,请照常使用redirect将其直接重定向到登录名

或者,您可以resolve在路由对象中使用回调

when('/login', { controller: 'LoginCtrl', templateUrl: '', resolve : {
    load : function ( ... ) { ... }
})

SO上已经有类似的东西

AngularJS-需要$ routeChangeStart和$ locationChangeStart的某种组合

在AngularJS中更改路线(动画,加载程序等)时触发回调

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJs-如果已经登录,则跳过登录页面

来自分类Dev

如果用户已经在Django中登录,如何从登录页面重定向?

来自分类Dev

如何使用angularjs添加登录页面

来自分类Dev

如果用户通过Firebase登录,如何显示其他页面

来自分类Dev

如何为已经登录的用户禁用登录页面

来自分类Dev

如果用户已经登录,如何隐藏登录屏幕

来自分类Dev

如果用户已经登录,如何隐藏登录屏幕

来自分类Dev

如果已经使用其他会话登录,则登录流程中断

来自分类Dev

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

来自分类Dev

如果用户使用AngularFire登录,如何防止访问Angular页面?

来自分类Dev

登录页面内容未在AngularJS中显示

来自分类Dev

Django allauth:访问登录页面,但已经登录

来自分类Dev

如果已经登录,则正确跳过登录活动

来自分类Dev

如果已经登录,则正确跳过登录活动

来自分类Dev

如果不登录yii框架,如何重定向登录页面?

来自分类Dev

进入登录页面时,如果已经登录,则重定向到索引

来自分类Dev

如果用户已经在React with JWT中登录,则限制对登录页面的访问

来自分类Dev

Joomla登录页面(如果已经登录用户)重定向到主页

来自分类Dev

如何显示使用AngularJs登录的MVC用户名

来自分类Dev

如何显示使用AngularJs登录的MVC用户名

来自分类Dev

如何不以角度显示登录用户的登录页面

来自分类Dev

如何在AngularJS中设置登录页面

来自分类Dev

如何在AngularJS中设置登录页面

来自分类Dev

如何让我的登录页面正常显示?

来自分类Dev

我在ios应用中实现了Google登录。现在,如何验证用户是否已登录,如果没有登录,请使用Swift将其返回登录页面?

来自分类Dev

AngularJs和登录页面

来自分类Dev

如果使用angular中的模块,如果路径为空,如何重定向到登录页面

来自分类Dev

在Django中使用context_processors.py时,如何避免在登录页面上请求用户?

来自分类Dev

如果用户已经登录,ASP.NET MVC Identity如何防止登录?

Related 相关文章

  1. 1

    AngularJs-如果已经登录,则跳过登录页面

  2. 2

    如果用户已经在Django中登录,如何从登录页面重定向?

  3. 3

    如何使用angularjs添加登录页面

  4. 4

    如果用户通过Firebase登录,如何显示其他页面

  5. 5

    如何为已经登录的用户禁用登录页面

  6. 6

    如果用户已经登录,如何隐藏登录屏幕

  7. 7

    如果用户已经登录,如何隐藏登录屏幕

  8. 8

    如果已经使用其他会话登录,则登录流程中断

  9. 9

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

  10. 10

    如果用户使用AngularFire登录,如何防止访问Angular页面?

  11. 11

    登录页面内容未在AngularJS中显示

  12. 12

    Django allauth:访问登录页面,但已经登录

  13. 13

    如果已经登录,则正确跳过登录活动

  14. 14

    如果已经登录,则正确跳过登录活动

  15. 15

    如果不登录yii框架,如何重定向登录页面?

  16. 16

    进入登录页面时,如果已经登录,则重定向到索引

  17. 17

    如果用户已经在React with JWT中登录,则限制对登录页面的访问

  18. 18

    Joomla登录页面(如果已经登录用户)重定向到主页

  19. 19

    如何显示使用AngularJs登录的MVC用户名

  20. 20

    如何显示使用AngularJs登录的MVC用户名

  21. 21

    如何不以角度显示登录用户的登录页面

  22. 22

    如何在AngularJS中设置登录页面

  23. 23

    如何在AngularJS中设置登录页面

  24. 24

    如何让我的登录页面正常显示?

  25. 25

    我在ios应用中实现了Google登录。现在,如何验证用户是否已登录,如果没有登录,请使用Swift将其返回登录页面?

  26. 26

    AngularJs和登录页面

  27. 27

    如果使用angular中的模块,如果路径为空,如何重定向到登录页面

  28. 28

    在Django中使用context_processors.py时,如何避免在登录页面上请求用户?

  29. 29

    如果用户已经登录,ASP.NET MVC Identity如何防止登录?

热门标签

归档