0.10.5で作成された古いsails.jsプロジェクトを0.12.xに移行しています。 元のコードはずいぶん前に書かれていて、「準拠していない」コードがいくつかあるかもしれないので、新しい帆プロジェクトを開始し、モデル/コントローラ/サービスをゆっくりと移行してプロジェクトを再構築することに決めました。設定ファイル。Sails.jsに移行する0.12 - ミドルウェアの移行
これまでのところ私はプロジェクトを手に入れることができましたが、今は認証に対処し始めています。理想的には、私はjwtでパスポートを使って既存のexpress-jwtを置き換えるつもりです。
私の古い設定/ http.jsので、次のようになります。
module.exports.http = {
bodyParser: function() {
//return require('body-parser')({limit: '900mb'});
var opts = { limit:'50mb' };
var fn;
// Default to built-in bodyParser:
fn = require('skipper');
return fn(opts);
},
customMiddleware: function(app) {
var bodyParser = require('body-parser');
var expressJwt = require('../libs/express-jwt');
var experssJwtConfig = require('./jwt.js').jwt;
app.use(function(req, res, next) {
res.setHeader("Access-Control-Allow-Origin", "*");
next();
});
app.use('/api', expressJwt({secret: experssJwtConfig.secret}));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
if(process.env.NODE_ENV == 'development') {
// just for local/development - serve static files
}
}
}
私は(私がよくスタックに精通していないです)を正しく理解していれば、このコードは、大きなファイルを可能スキッパーを使用します(デフォルトのボディパーサーを上書きします - これは)bodyParser
に指定され、加えて、使用するミドルウェアを変更している。
は
Access-Control-Allow-Origin
を追加するためのミドルウェアが含まれています。'api'のルートの場合、この実装では、デフォルトの動作ではないと思われるexpress-jwtミドルウェアが呼び出され、トークンが検索され、次にリクエストオブジェクトにユーザーが追加されますのコントローラ)。
ボディパーサー(
body-parser
)json
とurlencode
をミドルウェアチェーンに追加します。
ここで私の質問は多かれ少なかれ同じにしておくべきかどうかですか?明らかなアンチパターンやセキュリティリスクはありますか?私がスキッパーを使用する場合、ボディパーサーjson/urlencodeミドルウェアが必要ですか?
もっと標準的なパスポート/ jwtコードを使用して同等のフローを達成できるでしょうか?もしそうなら、sails-auth
でこの種のスタックを達成できますか?
うわー、それは非常に包括的な例です - :-)それを分類するために私にしばらく時間がかかります。私はあなたがそれを使用したpackage.jsの帆 - authを参照してください?簡単な見直しから、私はパスポートがどのように接続されているのか分かりません...このすべてが一緒に働いていることを理解するのに役立つリソースはありますか? –
'UserController.js'、' AuthController.js'、 'Services/passport.js'、' Services/protocols'はすべてsails-authファイルです。 npmのモジュールは古くなっているので、プロジェクトに直接追加する必要がありました。役立つ場合はReadmeを更新できます。 – MjZac
私は実際に帆authを試みたが、それは何も変更しないようだった。 readmeに手動でインストール手順を追加することができますか、またはいくつかのハウツー情報を追加することができます... –