异步身份验证angularjs

时间:2019-08-13 22:29:37

标签: javascript node.js angularjs

这有点令人费解,但是我使用apache 2.4作为网络服务器来托管angularjs 1.6应用程序并将代理反向转换到我的nodejs后端。 apache网络服务器从另一个来源接收有关用户的信息,我将其传递到后端。我已经设法保护/admin页面的如果用户来自/  -> /admin,但是如果用户直接访问/admin,则此功能无效。这是因为我会在用户访问/时存储有关用户的信息。当他们直接查看/admin时,我认为我必须向后端发出请求以了解它是谁(GET /whois),但我不知道如何解决此问题。诺言。这甚至有可能实现吗?

以下是我正在运行的内容的摘要:


backend.js:

Class User{
    constructor(username,is_admin){
        this.username = username;
        this.is_admin = is_admin;
    }
}
app.get("/whois", function(req,res){
    const user = new User(req.username, req.is_admin);
    res.send(user);
});

frontend.js

services.factory("AS", function($q){
    return {
        auth_me : function(){
            //TODO: $http.get("/whois")
            let isAuthenticated = this.localStorage["is_admin"];
            if (isAuthenticated){
                return true;
            }
            else{
                return $q.reject("unauthorized");
            }
        }
   }
}

myangApp.config(function($routeProvider){
    $routeProvider.when("/admin",{
        templateUrl : "pages/admin_page.html",
        resolve : {
            "auth" : function(AS){
                return AS.auth_me();
            }
        }
     });
});

0 个答案:

没有答案