Подтвердить что ты не робот

Каковы различия между местной базой и дайджестом в паспорте

Я понимаю разницу между аутентификацией Passport.js Basic и Digest, но в чем разница между локальной стратегией и Basic или Digest? Во всех трех случаях вы вводите имя пользователя и пароль. Является ли базовая стратегия типом аутентификации пользователя и пароля? Просьба уточнить.

4b9b3361

Ответ 1

Если я правильно понимаю, различия между локальными, базовыми и дайджестскими стратегиями в Passport.js являются тонкими, но важными. Вот краткое изложение:

Локальный (passport-local)

Локальная стратегия паспорта - это простая схема аутентификации имени пользователя и пароля. Он находит данный пароль пользователя из имени пользователя (или другого идентификатора) и проверяет, соответствуют ли они. Основное различие между локальной стратегией и двумя другими стратегиями заключается в использовании постоянных сеансов входа в систему. Эта стратегия должна использоваться по протоколу SSL/TLS.

Основной (passport-http)

Основная стратегия, реализованная Паспортом, почти идентична локальной стратегии с одной тонкой разницей. Основная стратегия должна использоваться с конечными точками API, где архитектура не имеет статуса. В результате сеансы не требуются, но могут быть использованы. Эта стратегия также должна использовать SSL/TLS. Флаг сеанса может быть установлен следующим образом:

app.get('/private', passport.authenticate('basic', { session: false }), function(req, res) {
  res.json(req.user);
});

Дайджест (passport-http)

Стратегия дайджеста тонко отличается от двух других стратегий тем, что использует специальную парадигму "запрос-ответ", чтобы избежать отправки пароля в открытом виде. Эта стратегия будет хорошим решением, когда SSL/TLS не будет доступен.

Это хорошая статья о Basic vs. Digest: Как аутентифицировать API

Примечание.. Все три стратегии делают поддержку сеанса необязательной. Две стратегии паспорт-http позволяют установить флаг сеанса, в то время как Passport docs говорят об этом в отношении локальной стратегии паспорта:

Обратите внимание, что включение поддержки сеанса полностью необязательно, хотя рекомендуется для большинства приложений.

Ответ 2

Если вы используете стратегию Passport Local:  - установлен сеанс, поэтому вам не нужно отправлять кредиты по каждому запросу;  - имя пользователя и пароль указаны в заголовках "username" и "password" по умолчанию;

Если вы используете стратегии Passport Basic/Digest: - сеанс не используется, поэтому вы должны предоставить учетные данные при каждом вызове API; - имя пользователя и пароль/хэш содержатся в заголовке "Авторизация";