Mashery IODocs - может ли он поддерживать аутентификацию Passportjs из моего REST API?

Я использую iodocs от Mashery в качестве интерфейса разработчика для моего REST API. Мой API написан на Node / Express и использует PassportJS для аутентификации пользователя (локальная стратегия). Моя реализация требует, чтобы пользователь использовал конечную точку / login, передав имя пользователя и пароль. Затем Passport сериализует пользователя в файле cookie, чтобы при последующих запросах не требовалось входить в систему.

При использовании iodocs файл cookie, который устанавливает Passport ("connect.sid"), не возвращается в последующих запросах.

Есть ли способ сделать это? Есть ли метод аутентификации, поддерживаемый IODocs, который работает таким образом?


person Scott Switzer    schedule 18.01.2013    source источник
comment
Кстати, я запускаю iodocs на localhost: 3001 и мой REST API на localhost: 3000. Я подозреваю, что файлы cookie не могут передаваться между разными портами - я настрою nginx в качестве прокси и попробую еще раз.   -  person Scott Switzer    schedule 18.01.2013


Ответы (1)


Файлы cookie БУДУТ проходить через порты. Проблема, с которой вы можете столкнуться, заключается в том, что "connect.sid" также устанавливается I / O Docs в том смысле, что он использует промежуточный модуль Express session.js, поэтому значение cookie, вероятно, перезаписывается.

Попробуйте обновить I / O Docs app.js с другим именем файла cookie в инициализаторе сеанса, задав значение «ключа»:

app.use(express.session({
    secret: config.sessionSecret,
    key: 'iodocs.connect.sid',
    store:  new RedisStore({
        'host':   config.redis.host,
        'port':   config.redis.port,
        'pass':   config.redis.password,
        'maxAge': 1209600000
    })
}));
person mansilladev    schedule 04.03.2013