Сбой аутентификации при доступе к маршрутам CRUD через Postman и httpie

Я использую Express-Stormpath для управления пользователями в моем приложении Express. Я использую стандартный способ входа в Stormpath и методы, требующие только электронную почту и пароль. Тем не менее, я не знаю, действительно ли проблема связана со штормом. При тестировании некоторых маршрутов CRUD я уверен, что ввел правильные учетные данные, но аутентификация не удалась. Ну, это не терпит неудачу сразу; Я получаю статус 200 или 302 и перенаправлен обратно на страницу входа.

Команда, которую я использую с httpie:

http --verbose -a username@email.com:password localhost:3000/api/users

Вывод вышеуказанной команды httpie:

Для Postman (клиент Chrome REST) ​​я использую помощника Basic Auth.

Однако вход в приложение через веб-клиент работает.

Что здесь происходит?

Редактировать 1

Вот как я защищал маршруты:

app.use('/', stormpath.loginRequired, routes);

app.use('/api/users', stormpath.apiAuthenticationRequired, users);

2 ответа

Я работаю в Stormpath, и я должен быть в состоянии помочь. Не могли бы вы показать нам, как вы защищаете /api/users маршрут? Вам нужно будет использовать stormpath.apiAuthenticationRequired промежуточное ПО, если вы хотите использовать обычную аутентификацию.

Я автор этой библиотеки - просто хотел присоединиться.

Проблема здесь в том, что вы проходите аутентификацию с вашим именем пользователя и паролем - это НЕ так, как работает наша аутентификация API.

Что вам нужно сделать, это сначала создать ключ API для вашей учетной записи пользователя, а затем использовать его для аутентификации.

Вот пример того, как создать ключ API для учетной записи пользователя:

req.user.createApiKey(function(err, key) {
  res.send('New API key created: id=' + key.id + ' secret=' + key.secret);
});

Это предоставит новый ключ API для вашего пользователя и выведет его.

Когда у вас есть ключ API (он состоит из двух частей, идентификатора и секретного ключа), вы можете сделать запрос:

http --verbose -a apikeyid:apikeysecret localhost:3000/api/users

Надеюсь, это поможет =)

Другие вопросы по тегам