我正在尝试使用每个身份验证来处理使用restify创建的rest api的身份验证。但是找不到起点。我希望这样做:
var restify = require('restify');
var everyauth = require('everyauth');
var server = restify.createServer();
server.use(everyauth.middleware());
但是restify并不接受所有的身份验证中间件。
我如何开始设置restify和每个身份验证?
发布于 2012-12-04 04:11:20
您遇到的问题是restify没有,当前也不会有中间件层。
下面是来自restify的作者
我对此考虑了很多,这里让我担心的是注册与connect的兼容性。我对他们决定做什么没有控制权,也没有意见。这似乎更像是“如果它有效,那就太好了”的脉络。
现在,我将使用“不会修复”来结束这个问题:\
https://github.com/mcavage/node-restify/issues/89
您可以做的是使用connect并在其上添加restify服务器,然后您可以使用connect来像每个身份验证一样管理您的中间件。
这是一个很好的例子,我已经让它在我的系统上工作得很好。
// Restify server config here
var server = restify.createServer({
name: 'restify-test',
version: '1.0.0',
});
// ...
// Connect config here
var connectApp = connect()
.use(connect.logger())
.use(connect.bodyParser())
.use(connect.query())
.use(connect.cookieParser())
// And this is where the magic happens
.use("/api", function (req, res) {
server.server.emit('request', req, res);
});
connectApp.listen(8080);
https://gist.github.com/2140974
然后您可以根据文档添加所有身份验证以进行连接。
希望这能有所帮助。
https://stackoverflow.com/questions/13101259
复制相似问题