freeCodeCamp/curriculum/challenges/russian/06-information-security-and.../advanced-node-and-express/set-up-passport.russian.md

5.9 KiB
Raw Blame History

id title challengeType videoUrl localeTitle
5895f70cf9fc0f352b528e65 Set up Passport 2 Настройка паспорта

Description

Напомним, что этот проект строится на следующем стартовом проекте Glitch или клонируется из GitHub . Пришло время настроить Passport, чтобы мы, наконец, могли позволить пользователю зарегистрироваться или войти в учетную запись! В дополнение к Passport мы будем использовать Express-session для обработки сеансов. Использование этого промежуточного программного обеспечения сохраняет идентификатор сеанса как куки-файл в клиенте и позволяет нам получить доступ к данным сеанса, используя этот идентификатор на сервере. Таким образом мы сохраняем информацию личного счета из cookie, используемой клиентом, чтобы проверить на нашем сервере, что они аутентифицированы, и просто держите ключ для доступа к данным, хранящимся на сервере. Чтобы настроить Passport для использования в вашем проекте, вам нужно будет добавить его как зависимость сначала в package.json. "passport": "^0.3.2" Кроме того, добавьте экспресс-сессию как зависимость теперь. Экспресс-сессия имеет массу расширенных функций, которые вы можете использовать, но пока мы просто используем основы! "express-session": "^1.15.0" Вам нужно будет настроить настройки сеанса и инициализировать Passport. Обязательно сначала создайте «сеанс переменных» и «паспорт», чтобы требовать «экспресс-сессию» и «паспорт» соответственно. Чтобы настроить ваше экспресс-приложение для использования, используйте сеанс, и мы определим лишь несколько основных параметров. Не забудьте добавить 'SESSION_SECRET' в ваш .ENV-файл и дать ему случайное значение. Это используется для вычисления хэша, используемого для шифрования вашего файла cookie!
 app.use (сессия ({
  secret: process.env.SESSION_SECRET,
  resave: true,
  saveUninitialized: true,
})); 
Кроме того, вы можете пойти и сказать, что ваше экспресс-приложение использует «passport.initialize ()» и «passport.session ()». (Например, app.use(passport.initialize()); ) Представьте свою страницу, если вы считаете, что у вас все в порядке. Если вы работаете в ошибки, вы можете проверить проект завершен до этого момента здесь .

Instructions

Tests

tests:
  - text: Паспорт и экспресс-сеанс - это зависимости
    testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/package.json") .then(data => { var packJson = JSON.parse(data); assert.property(packJson.dependencies, "passport", "Your project should list "passport" as a dependency"); assert.property(packJson.dependencies, "express-session", "Your project should list "express-session" as a dependency"); }, xhr => { throw new Error(xhr.statusText); })'
  - text: Зависимости правильно
    testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js") .then(data => { assert.match(data, /require.*("|")passport("|")/gi, "You should have required passport"); assert.match(data, /require.*("|")express-session("|")/gi, "You should have required express-session"); }, xhr => { throw new Error(xhr.statusText); })'
  - text: Экспресс-приложение использует новые зависимости
    testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js") .then(data => { assert.match(data, /passport.initialize/gi, "Your express app should use "passport.initialize()""); assert.match(data, /passport.session/gi, "Your express app should use "passport.session()""); }, xhr => { throw new Error(xhr.statusText); })'
  - text: Секретная сессия и секрет сеанса правильно настроены
    testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js") .then(data => { assert.match(data, /secret:( |)process.env.SESSION_SECRET/gi, "Your express app should have express-session set up with your secret as process.env.SESSION_SECRET"); }, xhr => { throw new Error(xhr.statusText); })'

Challenge Seed

Solution

// solution required