4

私はeveryauthを使用して、restifyで作成されたrestapiの認証を処理しようとしています。しかし、出発点を見つけることができません。私は次のようなことをすることを期待しています:

var restify = require('restify');  
var everyauth = require('everyauth');
var server = restify.createServer();
server.use(everyauth.middleware());

ただし、restifyはeveryauthミドルウェアを受け入れません。

restifyとeveryauthを設定するにはどうすればよいですか?

4

1 に答える 1

13

あなたが抱えている問題は、restifyがなく、現在のミドルウェア層がないことです。

以下はrestifyの作者によるものです

私はこれについてかなり考えました、そしてここで私が心配していることは、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);

https://gist.github.com/2140974

次に、ドキュメントに従って接続するすべての認証を追加できます。

お役に立てば幸いです。

于 2012-12-03T20:11:19.627 に答える