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

AngularJs-将访问权限限制为“已登录”用户的最佳方法

包阳成
2023-03-14
问题内容

我正在努力为正在创建的应用设置登录系统。

我可以为用户登录或注销设置cookie。我认为,如果用户已登录,测试每个视图都不是一个非常优雅的解决方案,并且我担心这里和那里的页面可能会掉入裂缝(这是一个相当大的应用程序)。

我在想最好的方法是以某种方式拦截路由更改并检查用户是否已登录,否则将其发送到登录/创建用户页面。我发现了一些方法,但是似乎没有正式记录。有没有人在现实世界中使用过这种方法,并且有效吗?

我的路线文件如下所示:

'use strict';

app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        // LOGIN
        .when('/User/LoginUser', {templateUrl: 'views/user/login.html',controller: 'loginCtrl'})

    ....... more routes here.......

        // DEFAULT
        .otherwise({redirectTo: '/'});
}]);

任何帮助或建议,或指向已记录的现实世界中有关如何执行此操作的示例,将不胜感激!


问题答案:

您可以使用以下示例作为依据来拦截建议的路由更改并采取相应的措施:

    $rootScope.$on('$routeChangeStart', function (event, next) {
        var userAuthenticated = ...; /* Check if the user is logged in */

        if (!userAuthenticated && !next.isLogin) {
            /* You can save the user's location to take him back to the same page after he has logged-in */
            $rootScope.savedLocation = $location.url();

            $location.path('/User/LoginUser');
        }
    });

另外,添加isLogin: true到登录页面的路由定义,如下所示:

$routeProvider
    // LOGIN
    .when('/User/LoginUser', {templateUrl: 'views/user/login.html',controller: 'loginCtrl', isLogin: true})

祝您项目顺利!



 类似资料:
  • 本文向大家介绍在Django中限制已登录用户的访问的方法,包括了在Django中限制已登录用户的访问的方法的使用技巧和注意事项,需要的朋友参考一下 有很多原因需要控制用户访问站点的某部分。 一个简单原始的限制方法是检查 request.user.is_authenticated() ,然后重定向到登陆页面: 或者显示一个出错信息: 作为一个快捷方式, 你可以使用便捷的 login_required

  • 问题内容: 我想限制登录用户可以使用的文件,否则返回403错误或类似错误。例如,用户只有在登录后才能查看/下载。 我知道如果未登录,如何使用Flask-Login控制文件的实际显示,但是如果他们直接在浏览器中访问链接,我将不知道如何阻止访问文件。 问题答案: Flask添加了一条静态路由来提供静态文件。在生产中,通常会“短路”此路由,以便Nginx在请求到达您的应用程序之前为文件提供服务。不用添加

  • 问题内容: 我的权限记录绑定到我的应用程序中的每个帐户。每个帐户可以具有一个或多个基于帐户类型的权限记录。这是示例: 上面的查询将为其中一个帐户产生这样的数据: 正如您在上方看到的,此帐户已分配了4条记录。访问类型可以是“完全”或“仅查看” 。访问级别可以是州“ S”,城市“ C”或建筑物“ B”。用户一次只能分配一个访问级别,因此,例如,不存在用户可以分配城市和州级别的情况。我的问题是,针对特定

  • 问题内容: 我有一个LAMP设置,我只想能够保护网页上的内容(图像,css,视频等),以便只有登录的用户才能访问它。 我知道我可以使用.htaccess轻松地做到这一点。但是,我不想使用身份验证弹出窗口,并且希望能够使用会话并能够注销。 我正在使用php来完成mysql身份验证和创建会话的工作。这很好。但是图像,CSS,JavaScript等仍然可以访问。 仅当存在有效的php会话时,如何才能允许

  • 我正在使用圣杯3.1.4和角度JS。 页面上的某些部分仅适用于登录用户,我想限制对相应html模板的访问,以便只有他们才能访问它们。 我已经设置了Spring Security性,因此对这些模板的访问是受限的。< br >我遇到的问题是,第一次加载页面时,似乎所有的html模板都已加载。此时,用户没有登录,因此服务器返回401错误。一旦用户登录并试图导航到受限页面,angular检查模板缓存,发现

  • 我在自定义可视化Web部件中有一个场景,我需要检查是否已登录用户是share point组的成员(share point组或用户存储在share point列表中)。实际上,如果列表中存在登录用户,他将在我的自定义Web部件中获得编辑访问权限。 由于我创建了一个组名“SharePoint\u Owners”,组设置为“谁可以查看此组的成员资格”到“组成员”,由于登录用户没有查看权限,网站抛出了“访