从后端加载Angular应用程序
Loading an Angular App from the Backend
我想在我的angular应用程序中加载任何其他内容之前,检查用户是否从后端进行了身份验证,这样就不会加载任何源代码。发送到后端的初始请求将是查看用户是否经过身份验证。如果是,应用程序将被加载。
或者,我想知道如何在请求页面时让我的后端检查身份验证,并根据用户是否登录发送不同的内容。
我怎样才能最好地做到这一点?
app.use(function(req, res, next) {
console.log(req);
next();
});
app.all('*', function(req, res, next) {
console.log(req);
res.send('hey');
})
为什么这些在我的节点应用程序中不起作用?
如果您使用的是像jade这样的渲染引擎。在加载的玉模板中,您可以将angular和ng视图嵌入到所述玉模板上。
因此,您让服务器使用jade模板tk处理auth,呈现您的开放/公共页面,然后进行身份验证。一旦他们通过了你的Auth测试,就会将页面重定向到上面有angular的jade模板。一旦页面加载angular,jade就会渲染页面。调用angular,你的angular应用程序就会接管页面。
如果您使用在服务器路由和角度模板URI上重叠的URI,请小心,因为它们会在ajax调用期间触发这些路由上的任何中间件。
我提供了一个关于令牌身份验证的非常有用的教程;一般来说,这个想法是使用一个拦截器来检查用户是否通过了身份验证,以防用户没有通过身份验证重定向到默认或登录页面
您需要对用户进行身份验证并以某种方式检查其授权。例如,如果使用基于会话的身份验证(与PHP执行会话的方式非常相似),则可能会有一个/login
站点来呈现用户的登录页面。使用自定义expressjs中间件,您可以重定向未经授权的用户或使用401 Unauthorized
/403 Forbidden
进行回复。
app.use(require('cookie-parser')());
app.use(require('express-session')());
// ...
app.post('/login', function (req, res, next) {
if (credentialsAreOK(req) {
req.session.authorized = true;
res.redirect('/pageAfterLogin');
} else {
res.send(401);
}
};
var checkAuthorization = function (req, res, next) {
if (req.session && req.session.authorized) {
return next();
} else {
res.redirect('/login');
// or return res.send(401);
}
};
app.get('/protectedSite', checkAuthorization);
// or
app.get('/protectedSite', checkAuthorization, protectedSiteHandler);
当请求页面时,您可以让后端检查身份验证,并根据用户是否登录发送不同的内容。
另一种方法是解析路由配置中的服务,该服务在解析路由之前检查身份验证。https://docs.angularjs.org/api/ngRoute/provider/$routeProvider
- angular 1.5应用程序中的导航栏
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 没有在Angular应用程序中定义firebase(在firebase迁移之后)
- Grunt构建导致Angular应用程序在dist上崩溃
- 在Angular应用程序中每个帖子投票一次
- 如何构建angular.js应用程序
- 微软边缘浏览器缓存中的RESTful Angular应用程序
- Angular ng控制器与ng应用程序冲突
- 如何在给定的angular应用程序中获取所有指令名称
- 使用应用程序状态js和视图在angular js url上传递两个参数
- 如何将现有的angular js应用程序集成到Laravel 5中
- 从C#应用程序向Angular页面发送帖子请求
- angular js应用程序不工作
- 我可以在React应用程序中使用什么作为Angular的等价物;s$http.get
- 同一'angular应用程序'在页面上
- 如何计算angular JS应用程序(单页应用程序)的页面加载时间
- RequireJS正在加载angular应用程序,但没有't创建app.controller
- 正在节点上设置Angular phonecat应用程序
- 我需要Angular/Ionic应用程序的帮助
- angular应用程序中的浏览器功能检测:使用服务、指令、控制器