Ответ 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 говорят об этом в отношении локальной стратегии паспорта:
Обратите внимание, что включение поддержки сеанса полностью необязательно, хотя рекомендуется для большинства приложений.