2017-02-22 9 views
0

帆0.10.5(私に渡された)を帆0.12.xに移動します。Sails.jsミドルウェアとポリシー

アプリケーションは、モバイル(コードバス/ハイブリッド)クライアントによって使用されるAPIです。

マイグレーションの一環として、適切なセイルの一部を再構築する必要があります。

部分的に関連するミドルウェアについて質問しましたhere

認証にパスポートを使用しています(古いAuthControllerコードを置き換えます)。今はJWTを実装しています(今はsails-authを使用しないことを選択しています)。

ほとんどの場合、パスポート-JWTを使用して、ポリシーで有効なトークンがあるかどうかを認証/チェックします。以前の実装、(expressJwt)において

ミドルウェアリクエストとreq.userにユーザを「注入」するために使用されたほとんどすべての私のコントローラの方法で使用され、既存のポリシーの一部に依拠します。

ポリシーベースのアプローチを採用するには、(ほぼ)すべてのルートにisAuthenticatedポリシーが必要です。つまり、誰かがポリシーを忘れると、コントローラが失敗するか、悪化する可能性があります。認証されていないユーザーがルートにアクセスする可能性があります。

ポリシーがオーバーライドして、同じ脆弱性を引き起こし、isAuthenticatedを呼び出すことなくsomemethod: ['isThis','isThat']を行うための「カスケード」、誰かのためにその可能性を(誰が「ロープを知っている」はありません)していないので*: 'isAuthenticated'を使用することも可能ですが。

私はポリシーベースのアプローチを使用するか、認証を行い、要求にユーザーを追加するためにカスタムミドルウェアを追加する必要がありますか(多かれ少なかれpassport.sessionのように思えます)

私もsocket.ioを使用していますが、これはポリシーベースまたはミドルウェアベースのアプローチのために何か変わりますか?

答えて

0

方針

(私は「偽」ソケットルートが唯一のミドルウェアスタックの一部を通過していることを読んでリコール)ポリシーは、認証に使用されることになっています。要求を変更するだけのポリシーは使用しないでください。 Authに関連している場合は、リクエストを変更するためにそれらを使用することは問題ありません。

ミドルウェア

あなたはミドルウェアにあなたが何らかの形で要求(または応答)を変更する必要があるたびに使用する必要がありますが、それはとにかく認証関連ではありません。

関連する問題