Zla*_*tko 12 authentication routes node.js express passport.js
我正在使用Express 4,我有一条受passport.js保护的路线,如下所示:
var media = require('express').Router();
media.get('/', function(req, res) {
// provide results from db
});
media.post('/', passport.authenticate('bearer'), function(req, res) {
// This route is auth protected
});
Run Code Online (Sandbox Code Playgroud)
所以 - 收集路线应该(大部分)不受我保护,并且应该创建/更新路线.但这需要我将护照传递给我的所有路径文件(到目前为止我已经有7个),然后将其作为中间件添加到其中一些文件中.
我喜欢你可以做这样的事情的版本:
var router = require('./my-router');
app.use('/api/route', passport.authenticate('bearer'));
app.use('/api/route', router);
Run Code Online (Sandbox Code Playgroud)
但这需要在我的所有路线上进行身份验证.
有没有更好的办法通过护照一路走来?
Ben*_*une 31
您可以将路由器拆分为受保护/不受保护的,并在受保护的路由上调用中间件.
var express = require('express'),
media = express.Router(),
mediaProtected = express.Router();
media.get('/', function(req, res) {
// provide results from db
});
mediaProtected.post('/', function(req, res) {
// This route is auth protected
});
module.exports = {
protected: mediaProtected,
unprotected: media
};
Run Code Online (Sandbox Code Playgroud)
然后你就可以做到
var router = require('./my-router');
app.use('/api/route', passport.authenticate('bearer'), router.protected);
app.use('/api/route', router.unprotected);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10190 次 |
| 最近记录: |