2011-09-14 7 views
1

Helllo oauthの認証/認証プロセスを抽象化し、独自の認証戦略を提供するミドルウェアライブラリをプログラミングします。express/connectのデータでmonkey patch request objを行う方法

私はサルがリクエストをデータに貼り付けるとき、ルーティングされたリクエストでは利用できませんが、他のミドルウェア(接続/エクスプレスのドキュメントはこの件では非常に貧弱です)が原因で止まっています。

どのようにデータファイルをすべての要求(静的ファイルを除く)で利用できるようにすることができますか?

ありがとうございました。

それらを動作させるためにちょうどイライラさせられたので、私は、他の利用可能なモジュールを使用していないPsの...

+0

あなたのミドルウェアのapp.use(...)と関連する部分を投稿できますか?この行は非常に不明です: ''私がサルのリクエストにデータをパッチすると、ルーティングされていないリクエストには ''、より詳細に行きますか?私はconnectのミドルウェアをかなり使っていますが、これはあなたの問題が何であるかを確立した後にお手伝いできるものです。 –

+0

@Ryan Olds私はそれを固定しています。コードはこちらhttps://github.com/Cu7l4ss/express-oauth-logic-middleware/ lib.js – Cu7l4ss

+0

@Ryan Olds in StrategyMaster authメソッドはミドルウェア – Cu7l4ss

答えて

1

このお試しください:私はconsole.log(req.isAuthenticated());が実行され、それが働いていると仮定し

function authOrDie() { 
    return function(req,res,next) { 
    console.log(req.isAuthenticated()); 
    next(); // Have to call next to continue to the next middleware 
    }; 
} 

を、私はまた、それが印刷されていると仮定してくださいfalse

また、静的ファイルへの要求を認証する必要がない場合は、スタック内の要求をはるかに上に移動する必要があります。

+0

これは動作しますが、ミドルウェアでもあります。しかし、通常のルート(例:/ posts)から添付されたユーザーデータにアクセスしようとすると、定義されていません。私はアプリのミドルウェア認証ロジック自体のデータを再接続することができたと思います。私はちょうどアプリケーションのミドルウェアがすべてのルートと要求を実行すると思った。 – Cu7l4ss

+0

ミドルウェアは 'req'に追加できなければならず、何かがそれを吹き消していない限り、ルートのreqで利用できるはずです同じオブジェクト。 'req'はミドルウェアの中の一つがそれを処理するか、それが終わりに達するまでミドルウェアを参照して渡されます。 express.routesはミドルウェアであり、どちらのルートを処理しても、同じ 'req'オブジェクトを取得します。それが設定されていない場合、何かが設定を解除しています。 –

+0

ああ私もそう思った。ルートミドルウェアとプレーンなapp.configureミドルウェアには微妙な違いがあります。違いは、ルートがアクセスされて以来、それはapp.configureミドルウェアチェーンの最初のものなので(私が理解したところで)これを行う方法は他にありませんが、ルートミドルウェアも同じであることを確認することですメソッドとしてauthOrDie fe) – Cu7l4ss

関連する問題