1

Unionの簡単な例を取り上げると、通常は app.configure に含まれる、 passport.jsのような構成コードをどこに配置できるか疑問に思っています。

app.configure(function() {
  // Initialize Passport!  Also use passport.session() middleware, to support
  // persistent login sessions (recommended).
  app.use(passport.initialize());
  app.use(passport.session());
});

何か案は?サーバーとルーターは use() を受け入れません。

4

3 に答える 3

1

beforeユニオンは、他の人が以前に述べたように、プロパティを介した接続ミドルウェアをサポートしています。ただし、unionはアプリケーション構成を処理しません。フラットアイアンはそうします。ただし、APIはExpressとは大きく異なります。

たとえば、アプリケーションの構成は次のようになります。

var path = require('path'),
    flatiron = require('flatiron'),
    app = flatiron.app,
    plugins = flatiron.plugins,
    connect = require('connect'), // most connect middlewares work with flatiron ootb
    passport = require('passport');

// Use flatiron's http plugin (not the same as a middleware!)
app.use(plugins.http);

// configuration consists of key/value pairs, not of function blocks associated with
// certain "environments".
// Here's *a* way you can handle environment-based configs; there are others!
app.config.file(path.resolve(
  __dirname,
  'config',
  (process.env.NODE_ENV || 'config') + '.json'
));

// Use our config to set the secret
app.http.before.push(connect.session({
  secret: app.config.get('secret') || 'keyboard cat' //default
}))
app.http.before.push(passport.initialize());
app.http.before.push(passport.session());

私はこの例を実行しようとはしていませんが(詳細はここにあると確信しています)、うまくいけば、これでアイデアが得られます。

于 2012-05-04T02:40:49.347 に答える
1

Passport.js と Flatiron.js を統合するラッパーを作成しました。

https://npmjs.org/package/flatiron-passport

https://github.com/travist/flatiron-passport

使い方はREADME.mdを読んでアプリケーションに適用してください。

LocalStrategy でテストしましたが、他の戦略でも機能するはずです。

それ以外の場合はお知らせください。

于 2012-08-28T12:32:42.697 に答える
1

ユニオンはbeforeこれにコレクションを使用しているようです:

var server = union.createServer({
  before: [
    connect.session({ secret: 'keyboard cat' }), // for `passport.session()`
    passport.initialize(),
    passport.session(),

    // etc.
  ]
});

「API」ドキュメントから:

@option before {Array} 
    The `before` value is an array of middlewares, which are used to route and serve incoming 
    requests. For instance, in the example, `favicon` is a middleware which handles requests 
    for `/favicon.ico`.
于 2012-03-19T20:52:09.583 に答える