Skip to content

Commit f233b37

Browse files
Update README.md
1 parent d496b78 commit f233b37

1 file changed

Lines changed: 41 additions & 9 deletions

File tree

README.md

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,47 @@
1-
# auth-api
2-
API сервиса аутентификации и авторизации в приложение Твой ФФ!
3-
4-
# Инструкция, как оно работает
5-
1. Архитектура
1+
1. Архитектура
62
Для добавления методов авторизации используется плагинная архитектура. Это сделано для того, чтобы очень быстро, практически не меняя существующий код внедрять новые методы авторизации. Новые методы внедряются с помощью наследованния от метакласса AuthMethod. Все остальное сделано по обычным паттернам.
73

84
2. Регистрация через email
9-
Чтобы зарегистрироваться через email надо дернуть ручку /email/registrate. Туда передается email и пароль через json. Регситрация через email доступна для незарегестрированных пользователей или для пользователей у которых определены методы регистрации, но не email. Возможны несколько исходов регистрации:
5+
Чтобы зарегистрироваться через email надо дернуть ручку /email/registrate. Туда передается email и пароль через json. Регистрация через email доступна для незарегестрированных пользователей или для пользователей у которых определены методы регистрации, но не email. Возможны несколько исходов регистрации:
6+
107
2.1 Успешно - 201
11-
Если пользователь зарегестрирован и
12-
Возвращает т.н ResponseModel = {status: "", message: ""}
8+
9+
Если пользователь зарегестрирован. Ему отправляется письмо для подтверждения почты, где есть ссылка, переходя нна которую происходит подтверждение.
10+
11+
2.2 Успешно - 200
12+
13+
Если пользщователь уже регестрировался, но не подтвердил свою почту. Ему отправляется повторное письмо, где есть новый линк.
14+
15+
2.3 AlreadyExists - 409
16+
17+
Если пользователь уже зарегистрироваля и подтвердил почту.
18+
19+
2.4 ObjectNotFound - 404
20+
21+
Если указано для какого пользователя добавить метод регистрации и этого пользователя не существует.
22+
23+
2.5 SessionExpired - 403
24+
25+
Если указано для какого пользователя добавить метод регистрации, указана его сессия, которая, в свою очередь, протухла.
26+
27+
При любом исходе возвращает т.н ResponseModel = {status: str, message: str}
1328

1429
3. Логин через email.
15-
Чтобы залогиниться надо дернуть ручку email/login.
30+
31+
Чтобы залогиниться надо дернуть ручку email/login. Туда передается email, password. Что может быть, если дернуть ручку:
32+
33+
3.1 AuthFailed - 401
34+
35+
Если логин+пароль неправильный или если пользователь не подтвердил email.
36+
37+
3.2 Успешно - 200
38+
39+
Возвращает в таком случае объект UserSession = {id: int, token: str, expires: datetime}
40+
41+
4. Смена пароля
42+
43+
Чтобы поменять пароль, существует два варианта: либо поменять его из открытой сессии: нужен email, password, new_password, token, либо в случае забытого пароля можно пользоваться только email.
44+
45+
4.1 Восстановление без сессии
46+
47+
Надо дернуть ручку /email/password/reset/request, передать туда email. На почту приходит письмо со ссылкой на фронт, где можно поменять пароль, там есть reset_token в ссылке. Далее

0 commit comments

Comments
 (0)