Express-为授权/未授权用户划分的公共目录

扬·吉娜

我有一个用express.js编写的应用程序,并且试图将此应用程序分为2个部分:

  • 一个用于未经授权的用户(仅具有到/-登陆页面,/ login和/ *-error404的路由)
  • 第二个(路线为:--登陆页面,/ app / *-角度SPA,它将自行处理路线)

Express还配置为从中获取静态文件,/unauth/public/并且我想添加第二个静态文件夹以请求来自授权路由的请求-/auth/public转到/ app / *

我的路线配置如下所示:

var authRoutes = express.Router();
var unauthRoutes = express.Router();

authRoutes.get('/app/*', function(req, res, next) {
    if(!req.isAuthenticated())
        return res.redirect("/login/");
    res.send("AUTHORIZED");
});

unauthRoutes.get('/', function(req, res, next) {
    res.send("LANDING PAGE");
});

unauthRoutes.get('/login/', function(req, res, next) {
    if(req.isAuthenticated())
        return res.redirect("/app/");
    res.send("LOGIN PAGE");
});

unauthRoutes.get('/registration/', function(req, res, next) {
    if(req.isAuthenticated())
        return res.redirect("/app/");
    res.send("REGISTRATION PAGE");
});

unauthRoutes.get('/*', function(req, res, next) {
    res.send("ERROR 404");
});

app.use('/', authRoutes);
app.use('/', unauthRoutes);

我试图修改req.url并express.static('auth/public')基于此调用另一个静态oruter

在授权路由中使用express.static中间件

但我不知道如何处理路由app.get('/auth/*', ...)-先前的修改将替换url,并且永远不会调用此路由。

j

您可以尝试这样的事情:

// Create your static middlewares
var unauthStatic = express.static('unauth/public');
var authStatic = express.static('auth/public');

// This goes in place of where you would normally load your static middleware
app.use(function(req, res, next) {
    if (req.isAuthenticated()) {
        authStatic(req, res, next);
    } else {
        unauthStatic(req, res, next);
    }
});

编辑:

如果您希望通过身份验证的用户能够访问auth和unauth目录中的文件,则可以对进行两次调用app.use,如下所示:

app.use(unauthStatic);
app.use(function(req, res, next) {
    if (! req.isAuthenticated()) {
        return next();
    }
    authStatic(req, res, next);
});

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Express-为授权/未授权用户划分的公共目录

来自分类Dev

Express中间件Passport无法响应未授权

来自分类Dev

找不到Express公共目录

来自分类Dev

Express网关jwt返回未经授权

来自分类Dev

Express Gateway CORS + apiKey 授权 401 Unauthorized

来自分类Dev

广告组授权-用户未授权

来自分类Dev

Spring Security未授权用户

来自分类Dev

基本Paypal沙盒授权和Express结帐逻辑

来自分类Dev

授权令牌 Axios 发送但 Express.js 未接收

来自分类Dev

Express解析为未使用的l值

来自分类Dev

Express服务器配置问题,公共目录

来自分类Dev

dbowner“未授权”更新用户?

来自分类Dev

Kbmmw。超时消息“匿名用户未授权”

来自分类Dev

由于未授权用户帐户,连接被拒绝

来自分类Dev

用户 [elastic] 未授权操作 [clustering/cluster]

来自分类Dev

如何用express服务目录?

来自分类常见问题

从Laravel目录中为授权用户提供静态JS-App

来自分类Dev

未显示本机Express AdView

来自分类Dev

NPM Express模块未安装

来自分类Dev

为未经授权的用户模糊照片

来自分类Dev

Mvc,授权反弹授权用户

来自分类Dev

Mvc,授权反弹授权用户

来自分类Dev

从具有JWT授权的express node.js下载文件

来自分类Dev

IIS Express中具有Active Directory的MVC身份验证/授权

来自分类Dev

使用 express 框架在 pipeDrive 回调中进行 OAuth 授权

来自分类Dev

NodeJs/Express:授权除一个端点之外的所有端点

来自分类Dev

类型错误:无法读取属性'授权' 使用 express-jwt 的 undefined

来自分类Dev

Express Router渲染和公共静态文件

来自分类Dev

在Node / Express中基于JWT为用户获取数据