我正在尝试使用everyauth来处理使用restify创建的rest api的身份验证。 但找不到起点。我期待做类似的事情:
var restify = require('restify');
var everyauth = require('everyauth');
var server = restify.createServer();
server.use(everyauth.middleware());
但是,restify不接受everyauth中间件。
我如何设置restify和everyauth?
答案 0 :(得分:13)
您遇到的问题是解决问题,而且当前不会有中间件层。
以下内容来自restify的作者
我已经考虑过这一点了,这里让我担心的是注册与connect的兼容性。我无法控制或输入他们决定做的事情。这似乎更像是“如果它有效,那就很好”。
我现在要用“无法解决”来解决这个问题:\
你可以做的是使用connect并在其上添加restify服务器,然后你可以使用connect来管理你的中间件,如everyauth。
以下是这方面的一个很好的例子,我现在的系统工作得非常好。
// 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
然后,您可以根据文档添加everyauth进行连接。
希望有所帮助。