Я переношу старый проект sails.js, который был написан с 0.10.5 по 0.12.x. Поскольку исходный код был написан давно и может иметь некоторый «несоответствующий» код, я решил перестроить проект, начав новый проект парусов и медленно мигрируя модели/контроллеры/службы, сохраняя при этом только необходимые политики и файлы конфигурации.Миграция в Sails.js 0.12 - миграция промежуточного программного обеспечения
До сих пор мне удалось получить проект поднять, и теперь я начинаю разбираться с аутентификацией. В идеале я намерен перейти к использованию паспорта с jwt для замены существующего экспресс-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
, или я должен сыграть свою роль?
Вау, это довольно комплексный пример - мне понадобится некоторое время, чтобы разобраться в ней :-). Я не вижу паруса-auth в package.js, вы использовали его? Из краткого обзора я не уверен, как паспорт подключен ... Есть ли какой-нибудь ресурс, который может помочь понять, как все это работает вместе? –
'UserController.js',' AuthController.js', 'Services/passport.js',' Сервисы/протоколы' являются файлами sails-auth. Поскольку модуль в npm устарел, мне пришлось добавить его непосредственно в проект. Я могу обновить Readme, если это поможет. – MjZac
Я действительно пробовал использовать sails-auth, но, похоже, никаких изменений не внес. Если вы можете добавить к readme инструкции по установке вручную или некоторую дополнительную практическую информацию, которая будет отличной ... –