Skip to content

Commit f79f204

Browse files
Update README.md
1 parent f233b37 commit f79f204

1 file changed

Lines changed: 19 additions & 17 deletions

File tree

README.md

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,49 @@
11
1. Архитектура
2+
23
Для добавления методов авторизации используется плагинная архитектура. Это сделано для того, чтобы очень быстро, практически не меняя существующий код внедрять новые методы авторизации. Новые методы внедряются с помощью наследованния от метакласса AuthMethod. Все остальное сделано по обычным паттернам.
34

45
2. Регистрация через email
5-
Чтобы зарегистрироваться через email надо дернуть ручку /email/registrate. Туда передается email и пароль через json. Регистрация через email доступна для незарегестрированных пользователей или для пользователей у которых определены методы регистрации, но не email. Возможны несколько исходов регистрации:
66

7-
2.1 Успешно - 201
7+
Чтобы зарегистрироваться через email надо дернуть ручку /email/registrate. Туда передается email и пароль через json. Регистрация через email доступна для незарегестрированных пользователей или для пользователей у которых определены методы регистрации, но не email. Возможны несколько исходов регистрации:
88

9-
Если пользователь зарегестрирован. Ему отправляется письмо для подтверждения почты, где есть ссылка, переходя нна которую происходит подтверждение.
9+
1. Успешно - 201
1010

11-
2.2 Успешно - 200
11+
Если пользователь зарегестрирован. Ему отправляется письмо для подтверждения почты, где есть ссылка, переходя нна которую происходит подтверждение.
1212

13-
Если пользщователь уже регестрировался, но не подтвердил свою почту. Ему отправляется повторное письмо, где есть новый линк.
13+
2. Успешно - 200
14+
15+
Если пользщователь уже регестрировался, но не подтвердил свою почту. Ему отправляется повторное письмо, где есть новый линк.
1416

15-
2.3 AlreadyExists - 409
17+
3. AlreadyExists - 409
1618

17-
Если пользователь уже зарегистрироваля и подтвердил почту.
19+
Если пользователь уже зарегистрироваля и подтвердил почту.
1820

19-
2.4 ObjectNotFound - 404
21+
4. ObjectNotFound - 404
2022

21-
Если указано для какого пользователя добавить метод регистрации и этого пользователя не существует.
23+
Если указано для какого пользователя добавить метод регистрации и этого пользователя не существует.
2224

23-
2.5 SessionExpired - 403
25+
5. SessionExpired - 403
2426

25-
Если указано для какого пользователя добавить метод регистрации, указана его сессия, которая, в свою очередь, протухла.
27+
Если указано для какого пользователя добавить метод регистрации, указана его сессия, которая, в свою очередь, протухла.
2628

2729
При любом исходе возвращает т.н ResponseModel = {status: str, message: str}
2830

2931
3. Логин через email.
3032

3133
Чтобы залогиниться надо дернуть ручку email/login. Туда передается email, password. Что может быть, если дернуть ручку:
3234

33-
3.1 AuthFailed - 401
35+
1. AuthFailed - 401
3436

35-
Если логин+пароль неправильный или если пользователь не подтвердил email.
37+
Если логин+пароль неправильный или если пользователь не подтвердил email.
3638

37-
3.2 Успешно - 200
39+
2. Успешно - 200
3840

39-
Возвращает в таком случае объект UserSession = {id: int, token: str, expires: datetime}
41+
Возвращает в таком случае объект UserSession = {id: int, token: str, expires: datetime}
4042

4143
4. Смена пароля
4244

4345
Чтобы поменять пароль, существует два варианта: либо поменять его из открытой сессии: нужен email, password, new_password, token, либо в случае забытого пароля можно пользоваться только email.
4446

45-
4.1 Восстановление без сессии
47+
1. Восстановление без сессии
4648

47-
Надо дернуть ручку /email/password/reset/request, передать туда email. На почту приходит письмо со ссылкой на фронт, где можно поменять пароль, там есть reset_token в ссылке. Далее
49+
Надо дернуть ручку /email/password/reset/request, передать туда email. На почту приходит письмо со ссылкой на фронт, где можно поменять пароль, там есть reset_token в ссылке. Далее

0 commit comments

Comments
 (0)