Skip to content

Commit 90457f2

Browse files
authored
fix: typo, conjunctions, and wording (#804)
1 parent 50000c6 commit 90457f2

File tree

1 file changed

+8
-8
lines changed
  • i18n/ru/docusaurus-plugin-content-docs/current/guides/examples

1 file changed

+8
-8
lines changed

i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/auth.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ export function RegisterPage() {
9898

9999
#### В `shared/api`
100100

101-
Этот подход хорошо сочетается с тем, чтоб размещать в `shared/api` все функции запросов, и группировать их по эндпоинту, например. Структура файлов в таком случае может выглядеть так:
101+
Этот подход хорошо сочетается с тем, чтобы размещать в `shared/api` все функции запросов, и группировать их по эндпоинту, например. Структура файлов в таком случае может выглядеть так:
102102

103103
- 📂 shared
104104
- 📂 api
@@ -163,7 +163,7 @@ export function login({ email, password }: { email: string, password: string })
163163

164164
### В Shared
165165

166-
Этот подход хорошо работает, когда API-клиент определен в `shared/api`, поскольку токен свободно доступен ему для других функций-запросов, которые требуют авторизацию. Вы можете сделать так, чтоб клиент имел свой стейт, либо с помощью реактивного хранилища, либо просто с помощью переменной на уровне модуля. Затем вы можете обновлять этот стейт в ваших функциях `login()`/`logout()`.
166+
Этот подход хорошо работает, когда API-клиент определен в `shared/api`, поскольку токен свободно доступен ему для других функций-запросов, которые требуют авторизацию. Вы можете сделать так, чтобы клиент имел свой стейт, либо с помощью реактивного хранилища, либо просто с помощью переменной на уровне модуля. Затем вы можете обновлять этот стейт в ваших функциях `login()`/`logout()`.
167167

168168
Автоматическое обновление токена может быть реализовано как middleware в API-клиенте — то, что выполняется каждый раз, когда вы делаете какой-либо запрос. Например, можно сделать так:
169169

@@ -181,13 +181,13 @@ export function login({ email, password }: { email: string, password: string })
181181

182182
:::note
183183

184-
**Текущий пользователь** также иногда называется "viewer" или "me". Это делается для того, чтоб различать одного авторизованного пользователя с разрешениями и приватной информацией и всех остальных пользователей с публичной информацией.
184+
**Текущий пользователь** также иногда называется "viewer" или "me". Это делается для того, чтобы различать одного авторизованного пользователя с разрешениями и приватной информацией и всех остальных пользователей с публичной информацией.
185185

186186
:::
187187

188-
Чтоб хранить токен в сущности User, создайте реактивное хранилище в сегменте `model`. Это хранилище может содержать одновременно и токен, и объект с информацией о пользователе.
188+
Чтобы хранить токен в сущности User, создайте реактивное хранилище в сегменте `model`. Это хранилище может содержать одновременно и токен, и объект с информацией о пользователе.
189189

190-
Поскольку API-клиент обычно размещается в `shared/api` или распределяется между сущностями, главной проблемой этого подхода является обеспечение доступа к токену для других запросов, не нарушая при этом [правило импортов для слоёв][import-rule-on-layers]:
190+
Поскольку API-клиент обычно размещается в `shared/api` или распределяется между сущностями, главной проблемой этого подхода является обеспечение доступа к токену для других запросов, без нарушения [правил импортов для слоёв][import-rule-on-layers]:
191191

192192
> Модуль (файл) в слайсе может импортировать другие слайсы только в том случае, если они расположены на слоях строго ниже.
193193
@@ -196,19 +196,19 @@ export function login({ email, password }: { email: string, password: string })
196196
1. **Передавать токен вручную каждый раз, когда делаете запрос**
197197
Это самое простое решение, но оно быстро становится неудобным, и если у вас нет строгой типизации, об этом легко забыть. Это решение также несовместимо с паттерном middleware для API-клиента в Shared.
198198
1. **Открыть доступ к токену для всего приложения через контекст или глобальное хранилище вроде `localStorage`**
199-
Ключ, по которому можно будет получить токен, будет храниться в `shared/api`, чтоб API-клиент мог его использовать. Реактивное хранилище токена будет экспортировано из сущности User, а провайдер контекста (если требуется) будет настроен на слое App. Это дает больше свободы для дизайна API-клиента, но такой подход создаёт неявную зависимость
199+
Ключ, по которому можно будет получить токен, будет храниться в `shared/api`, чтобы API-клиент мог его использовать. Реактивное хранилище токена будет экспортировано из сущности User, а провайдер контекста (если требуется) будет настроен на слое App. Это дает больше свободы для дизайна API-клиента, но такой подход создаёт неявную зависимость
200200
1. **Вставлять токен в API-клиент каждый раз, когда токен меняется**
201201
Если ваше хранилище реактивное, то можно подписаться на изменения и обновлять токен в API-клиенте каждый раз, когда хранилище в сущности User меняется. Это похоже на прошлое решение тем, что они оба создают неявную зависимость, но это решение более императивное ("push"), тогда как предыдущее — более декларативное ("pull").
202202

203-
Как только вы решите проблему доступности токена, хранящегося в модели сущности User, вы сможете описать дополнительную бизнес-логику, связанную с управлением токенами. Например, сегмент `model` может содержать логику, которая делает токен недействительным через определенный период времени или обновляет токен по истечении срока его действия. Чтобы совершать запросы на бэкенд для выполнения этих задач, используйте сегмент `api` сущности User или `shared/api`.
203+
Решив проблему доступности токена, хранящегося в модели сущности User, вы сможете описать дополнительную бизнес-логику, связанную с управлением токенами. Например, сегмент `model` может содержать логику, которая делает токен недействительным через определенный период времени или обновляет токен по истечении срока его действия. Чтобы совершать запросы на бэкенд для выполнения этих задач, используйте сегмент `api` сущности User или `shared/api`.
204204

205205
### В Pages/Widgets (не рекомендуется)
206206

207207
Не рекомендуется хранить состояние, актуальное для всего приложения, как например токен доступа, в страницах или виджетах. Не стоит размещать хранилище токенов в сегменте `model` на странице логина. Вместо этого выберите одно из первых двух решений: Shared или Entities.
208208

209209
## Логаут и аннулирование токена
210210

211-
Обычно в приложениях не делают целую отдельную страницу для логаута, но функционал логаута, тем не менее, очень важна. В этот функционал входит авторизованный запрос на бэкенд и обновление хранилища токенов.
211+
Обычно в приложениях не делают целую отдельную страницу для логаута, но функционал логаута, тем не менее, очень важен. В этот функционал входит авторизованный запрос на бэкенд и обновление хранилища токенов.
212212

213213
Если вы храните все ваши запросы в `shared/api`, оставьте там функцию для запроса на логаут, рядом с функцией для логина. Если нет, разместите функцию-запрос на логаут рядом с кнопкой, которая её вызывает. Например, если у вас есть виджет хэдера, который есть на каждой странице и содержит ссылку для логаута, поместите этот запрос в сегмент `api` этого виджета.
214214

0 commit comments

Comments
 (0)