Replace Github -> GitHub (Russian) (#35170)

This commit is contained in:
Lipis
2019-02-12 19:25:19 +01:00
committed by Randell Dawson
parent 661d10412f
commit e85a60515e
40 changed files with 87 additions and 87 deletions

View File

@@ -7,7 +7,7 @@ localeTitle: Стратегии аутентификации
---
## Description
<section id="description"> Напомним, что этот проект строится на следующем стартовом проекте <a href="https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-advancednode/">Glitch</a> или клонируется из <a href="https://github.com/freeCodeCamp/boilerplate-advancednode/">GitHub</a> . Стратегия - это способ аутентификации пользователя. Вы можете использовать стратегию, позволяющую пользователям проходить аутентификацию на основе локально сохраненной информации (если вы сначала регистрируетесь) или от различных поставщиков, таких как Google или Github. Для этого проекта мы создадим локальную стратегию. Чтобы просмотреть список 100 стратегий, посетите сайт Passports <a href="http://passportjs.org/">здесь</a> . Добавьте <em>паспорт-локальный</em> в качестве зависимости и добавьте его на свой сервер следующим образом: <code>const LocalStrategy = require(&#39;passport-local&#39;);</code> Теперь вам нужно будет указать паспорт, чтобы <b>использовать</b> экземпляр объекта LocalStartegy с несколькими определенными настройками. Удостоверьтесь, что это, а также все, начиная с этого момента, инкапсулировано в соединение с базой данных, поскольку оно полагается на него! <pre> passport.use (новая LocalStrategy (
<section id="description"> Напомним, что этот проект строится на следующем стартовом проекте <a href="https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-advancednode/">Glitch</a> или клонируется из <a href="https://github.com/freeCodeCamp/boilerplate-advancednode/">GitHub</a> . Стратегия - это способ аутентификации пользователя. Вы можете использовать стратегию, позволяющую пользователям проходить аутентификацию на основе локально сохраненной информации (если вы сначала регистрируетесь) или от различных поставщиков, таких как Google или GitHub. Для этого проекта мы создадим локальную стратегию. Чтобы просмотреть список 100 стратегий, посетите сайт Passports <a href="http://passportjs.org/">здесь</a> . Добавьте <em>паспорт-локальный</em> в качестве зависимости и добавьте его на свой сервер следующим образом: <code>const LocalStrategy = require(&#39;passport-local&#39;);</code> Теперь вам нужно будет указать паспорт, чтобы <b>использовать</b> экземпляр объекта LocalStartegy с несколькими определенными настройками. Удостоверьтесь, что это, а также все, начиная с этого момента, инкапсулировано в соединение с базой данных, поскольку оно полагается на него! <pre> passport.use (новая LocalStrategy (
функция (имя пользователя, пароль, сделанный) {
db.collection (&#39;users&#39;). findOne ({имя пользователя: имя пользователя}, функция (err, user) {
console.log (&#39;Пользователь&#39; + имя пользователя + &#39;пытался войти.&#39;);
@@ -17,7 +17,7 @@ localeTitle: Стратегии аутентификации
return done (null, user);
});
}
)); </pre> Это определяет процесс, который нужно предпринять, когда мы пытаемся аутентифицировать кого-то локально. Сначала он пытается найти пользователя в нашей базе данных с введенным именем пользователя, затем он проверяет, соответствует ли пароль, а затем, если не было обнаружено ошибок, которые мы проверили, например неправильный пароль, возвращается объект-пользователи, и они проверку подлинности. Многие стратегии настроены с использованием разных настроек, но в общем, легко настроить его на основе README в этом репозитории стратегий. Хорошим примером этого является стратегия Github, в которой нам не нужно беспокоиться о имени пользователя или пароле, потому что пользователь будет отправлен на страницу авторизации Github для аутентификации, и пока они войдут в систему и согласятся, Github возвращает свой профиль для нам использовать. На следующем шаге мы определим, как на самом деле вызывать стратегию аутентификации для проверки пользователя на основе данных формы! Отправьте свою страницу, когда вы думаете, что у вас есть это прямо до этого момента. </section>
)); </pre> Это определяет процесс, который нужно предпринять, когда мы пытаемся аутентифицировать кого-то локально. Сначала он пытается найти пользователя в нашей базе данных с введенным именем пользователя, затем он проверяет, соответствует ли пароль, а затем, если не было обнаружено ошибок, которые мы проверили, например неправильный пароль, возвращается объект-пользователи, и они проверку подлинности. Многие стратегии настроены с использованием разных настроек, но в общем, легко настроить его на основе README в этом репозитории стратегий. Хорошим примером этого является стратегия GitHub, в которой нам не нужно беспокоиться о имени пользователя или пароле, потому что пользователь будет отправлен на страницу авторизации GitHub для аутентификации, и пока они войдут в систему и согласятся, GitHub возвращает свой профиль для нам использовать. На следующем шаге мы определим, как на самом деле вызывать стратегию аутентификации для проверки пользователя на основе данных формы! Отправьте свою страницу, когда вы думаете, что у вас есть это прямо до этого момента. </section>
## Instructions
<section id="instructions">

View File

@@ -7,7 +7,7 @@ localeTitle: Внедрение социальной аутентификаци
---
## Description
<section id="description"> Напомним, что этот проект строится на следующем стартовом проекте <a href="https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-socialauth/">Glitch</a> или клонируется из <a href="https://github.com/freeCodeCamp/boilerplate-socialauth/">GitHub</a> . Последняя часть настройки вашей аутентификации Github - это создание самой стратегии. Для этого вам нужно будет добавить зависимость «паспорт-github» к вашему проекту и потребовать его как GithubStrategy, например, <code>const GitHubStrategy = require(&#39;passport-github&#39;).Strategy;</code> , Чтобы настроить стратегию Github, вы должны указать <b>паспорт,</b> чтобы <b>использовать</b> экземпляр <b>GithubStrategy</b> , который принимает 2 аргумента: объект (содержащий <em>clientID</em> , <em>clientSecret</em> и <em>callbackURL</em> ) и функцию, которая будет вызываться, когда пользователь будет успешно аутентифицирован, что мы определим если пользователь является новым и какие поля сначала сохраняются в объекте базы данных пользователя. Это распространено во многих стратегиях, но для некоторых из них может потребоваться дополнительная информация, как указано в github этой конкретной стратегии README; например, Google требует также <em>область видимости,</em> которая определяет, какую информацию запрашивает ваш запрос, и просит пользователя одобрить такой доступ. Текущая стратегия, которую мы реализуем, имеет свое использование, изложенное <a>здесь</a> , но мы все это проверим здесь, на freeCodeCamp! Вот как ваша новая стратегия должна смотреть на этот момент: <pre> passport.use (новый GitHubStrategy ({
<section id="description"> Напомним, что этот проект строится на следующем стартовом проекте <a href="https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-socialauth/">Glitch</a> или клонируется из <a href="https://github.com/freeCodeCamp/boilerplate-socialauth/">GitHub</a> . Последняя часть настройки вашей аутентификации GitHub - это создание самой стратегии. Для этого вам нужно будет добавить зависимость «паспорт-github» к вашему проекту и потребовать его как GithubStrategy, например, <code>const GitHubStrategy = require(&#39;passport-github&#39;).Strategy;</code> , Чтобы настроить стратегию GitHub, вы должны указать <b>паспорт,</b> чтобы <b>использовать</b> экземпляр <b>GithubStrategy</b> , который принимает 2 аргумента: объект (содержащий <em>clientID</em> , <em>clientSecret</em> и <em>callbackURL</em> ) и функцию, которая будет вызываться, когда пользователь будет успешно аутентифицирован, что мы определим если пользователь является новым и какие поля сначала сохраняются в объекте базы данных пользователя. Это распространено во многих стратегиях, но для некоторых из них может потребоваться дополнительная информация, как указано в github этой конкретной стратегии README; например, Google требует также <em>область видимости,</em> которая определяет, какую информацию запрашивает ваш запрос, и просит пользователя одобрить такой доступ. Текущая стратегия, которую мы реализуем, имеет свое использование, изложенное <a>здесь</a> , но мы все это проверим здесь, на freeCodeCamp! Вот как ваша новая стратегия должна смотреть на этот момент: <pre> passport.use (новый GitHubStrategy ({
clientID: process.env.GITHUB_CLIENT_ID,
clientSecret: process.env.GITHUB_CLIENT_SECRET,
callbackURL: / * ВСТАВЬТЕ URL-адрес CALLBACK, ВХОДЯЩИЙ В ГИТУМ ЗДЕСЬ * /
@@ -16,7 +16,7 @@ localeTitle: Внедрение социальной аутентификаци
console.log (профиль);
// Логика базы данных здесь с обратным вызовом, содержащим наш пользовательский объект
}
)); </pre> Ваша аутентификация еще не будет выполнена, и на самом деле вывести ошибку, без логики базы данных и обратного вызова, но она должна зайти на консоль вашего профиля Github, если вы попробуете! Представьте свою страницу, когда вы думаете, что у вас все в порядке. </section>
)); </pre> Ваша аутентификация еще не будет выполнена, и на самом деле вывести ошибку, без логики базы данных и обратного вызова, но она должна зайти на консоль вашего профиля GitHub, если вы попробуете! Представьте свою страницу, когда вы думаете, что у вас все в порядке. </section>
## Instructions
<section id="instructions">
@@ -31,7 +31,7 @@ tests:
testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/package.json") .then(data => { var packJson = JSON.parse(data); assert.property(packJson.dependencies, "passport-github", "Your project should list "passport-github" 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-github("|")/gi, "You should have required passport-github"); }, xhr => { throw new Error(xhr.statusText); })'
- text: До сих пор стратегия Github
- text: До сих пор стратегия GitHub
testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js") .then(data => { assert.match(data, /passport.use.*new GitHubStrategy/gi, "Passport should use a new GitHubStrategy"); assert.match(data, /callbackURL:( |)("|").*("|")/gi, "You should have a callbackURL"); assert.match(data, /process.env.GITHUB_CLIENT_SECRET/g, "You should use process.env.GITHUB_CLIENT_SECRET"); assert.match(data, /process.env.GITHUB_CLIENT_ID/g, "You should use process.env.GITHUB_CLIENT_ID"); }, xhr => { throw new Error(xhr.statusText); })'
```

View File

@@ -7,7 +7,7 @@ localeTitle: Внедрение социальной аутентификаци
---
## Description
<section id="description"> Напомним, что этот проект строится на следующем стартовом проекте <a href="https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-socialauth/">Glitch</a> или клонируется из <a href="https://github.com/freeCodeCamp/boilerplate-socialauth/">GitHub</a> . Конечной частью стратегии является обработка профиля, возвращенного из Github. Нам нужно загрузить объект базы данных пользователей, если он существует, или создать его, если это не так, и заполнить поля из профиля, а затем вернуть объект пользователя. Github предоставляет нам уникальный <em>идентификатор</em> в каждом профиле, который мы можем использовать для поиска, чтобы сериализовать пользователя (уже реализовано). Ниже приведен пример реализации, которую вы можете использовать в своем проекте: она входит в функцию, которая является вторым аргументом для новой стратегии, прямо под <code>console.log(profile);</code> в настоящее время: <pre> db.collection ( &#39;socialusers&#39;). findAndModify (
<section id="description"> Напомним, что этот проект строится на следующем стартовом проекте <a href="https://glitch.com/#!/import/github/freeCodeCamp/boilerplate-socialauth/">Glitch</a> или клонируется из <a href="https://github.com/freeCodeCamp/boilerplate-socialauth/">GitHub</a> . Конечной частью стратегии является обработка профиля, возвращенного из GitHub. Нам нужно загрузить объект базы данных пользователей, если он существует, или создать его, если это не так, и заполнить поля из профиля, а затем вернуть объект пользователя. GitHub предоставляет нам уникальный <em>идентификатор</em> в каждом профиле, который мы можем использовать для поиска, чтобы сериализовать пользователя (уже реализовано). Ниже приведен пример реализации, которую вы можете использовать в своем проекте: она входит в функцию, которая является вторым аргументом для новой стратегии, прямо под <code>console.log(profile);</code> в настоящее время: <pre> db.collection ( &#39;socialusers&#39;). findAndModify (
{id: profile.id},
{},
{$ SetOnInsert: {
@@ -37,7 +37,7 @@ localeTitle: Внедрение социальной аутентификаци
```yml
tests:
- text: Настройка стратегии Github завершена
- text: Настройка стратегии GitHub завершена
testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js") .then(data => { assert.match(data, /GitHubStrategy[^]*db.collection/gi, "Strategy should use now use the database to search for the user"); assert.match(data, /GitHubStrategy[^]*socialusers/gi, "Strategy should use "socialusers" as db collection"); assert.match(data, /GitHubStrategy[^]*return cb/gi, "Strategy should return the callback function "cb""); }, xhr => { throw new Error(xhr.statusText); })'
```