4.8 KiB
4.8 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
589fc831f9fc0f352b528e77 | Authentication with Socket.IO | 2 | Аутентификация с помощью Socket.IO |
Description
Добавьте «passport.socketio» в качестве зависимости и укажите его как «passportSocketIo». Теперь мы просто должны сказать Socket.IO, чтобы использовать его и установить параметры. Убедитесь, что это добавлено до существующего кода сокета, а не в существующем прослушивателе подключений. Для вашего сервера он должен выглядеть следующим образом:
io.use (passportSocketIo.authorize ({ cookieParser: cookieParser, ключ: «express.sid», secret: process.env.SESSION_SECRET, store: sessionStore }));Вы также можете передать «успех» и «сбой» функцией, которая будет вызываться после завершения процесса проверки подлинности, когда клиент пытается подключиться. Пользовательский объект теперь доступен на вашем объекте сокета как
socket.request.user
. Например, теперь вы можете добавить следующее: console.log('user ' + socket.request.user.name + ' connected');
и он будет подключаться к серверной консоли, которая подключилась! Представьте свою страницу, когда вы думаете, что у вас все в порядке. Если вы работаете в ошибки, вы можете проверить проект до этого момента здесь . Instructions
Tests
tests:
- text: passportSocketIo является зависимым
testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/package.json") .then(data => { var packJson = JSON.parse(data); assert.property(packJson.dependencies, "passport.socketio", "Your project should list "passport.socketio" as a dependency"); }, xhr => { throw new Error(xhr.statusText); })'
- text: требуется паспортSocketIo
testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js").then(data => { assert.match(data, /require\(([""])passport\.socketio\1\)/gi, "You should correctly require and instantiate "passport.socketio"");}, xhr => { throw new Error(xhr.statusText); })'
- text: passportSocketIo правильно настроен
testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js") .then(data => { assert.match(data, /io\.use\(.+\.authorize\(/gi, "You should register "passport.socketio" as socket.io middleware and provide it correct options"); }, xhr => { throw new Error(xhr.statusText); })'
Challenge Seed
Solution
// solution required