使用everyauth和restify

AyK*_*rsi 4 node.js everyauth restify

我正在尝试使用everyauth来处理用restify创建的rest api的身份验证.但找不到起点.我希望做的事情如下:

var restify = require('restify');  
var everyauth = require('everyauth');
var server = restify.createServer();
server.use(everyauth.middleware());
Run Code Online (Sandbox Code Playgroud)

但是,restify不接受everyauth中间件.

我如何设置解决方案和每个人?

Jas*_*gne 13

您遇到的问题是解决问题,而且当前不会有中间件层.

以下是来自解析的作者

我已经考虑过这个问题了,这里让我担心的是注册与connect的兼容性.我无法控制或输入他们决定做的事情.这似乎更像是"如果它有效,那么伟大".

我现在要用"不会修复"关闭这个:

https://github.com/mcavage/node-restify/issues/89

您可以做的是使用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);
Run Code Online (Sandbox Code Playgroud)

https://gist.github.com/2140974

然后,您可以根据文档添加everyauth进行连接.

希望有所帮助.