You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2. На почту приходит письмо с линком на `GET /email/approve?token='...'`, если по ней перейти то почта будет подтверждена и регистрацию можно считать завершенной.
38
52
39
-
### Что надо сделать чтобы залогиниться через email
40
-
41
-
1. Дернуть ручку `POST /email/login`. там всего один вариант логина, никуда не денетесь
53
+
### Email: вход в аккаунт
54
+
1. Дернуть ручку `POST /email/login`. там всего один вариант логина, никуда не денетесь
42
55
2. Вам придет токен, сохраняйте его кууда нибудь, срок действия ограничен.
43
56
44
-
### Забыли пароль
45
-
46
-
1. Дернуть ручку `POST /email/reset/password/request`. Вы передаете `{email: ""}`в нагрузке
57
+
### Email: Восстановление забытого пароля
58
+
1. Дернуть ручку `POST /email/reset/password/request`. Вы передаете `{email: ""}`в нагрузке
47
59
2. Вам придет письмо, где будет ссылка НА ФРОНТ(надо сделать это), в ссылке будет reset_token
48
60
3. Токен надо передать в ручку `POST /email/reset/password` в заголовках, вместе с `{email: "", new_password: ""}` и пароль будет изменен. email не понадобится после решения #36
49
-
50
-
### Смена пароля
51
61
62
+
### Email: Изменение пароля
52
63
1. Если пароль не забыт, а просто надо его поменять. Тогда в `POST /email/reset/password/request` передается токен авторизации, в теле вы передаете `{email: "", password: "", new_password: ""}`
53
64
2. Отправляете запрос и всё, пароль изменен, вам придет письмо с уведомлением о смене пароляю
54
65
55
-
### Что надо сделать, чтобы поменять почту
56
-
66
+
### Email: Изменение адреса электронной почты
57
67
1. Дернуть ручку `POST /email/reset/email/request`. Всего один вариант, передаете новое мыло в теле `{email: ""}` и токен атворизации в заголовках
58
68
2. На почту придет письмо с подтверждением почты, там будет токен подтверждения в query параметрах. Ссылка ведет на ручку GET пока что, но надо переделать, чтобы тоже вела на фронт.
59
-
69
+
70
+
### Google/Physics: вход пользователя с аккаунтом Google
71
+
*Все примеры написаны для Google аккаунта, для аккаунта physics.msu.ru средует делать запросы к `/physics-msu` вместо `/google`*
72
+
73
+
1. Получаем адрес для запроса на сервер Google: `GET /google/auth_url`
74
+
2. Редиректим пользователя на этот url, пользователь входит в аккаунт и возвращается на страницу, которую можно узнать запросом `GET /google/redirect_url`
75
+
3. Если Google не передал в ответе GET параметр `error`, передаем GET параметры страницы на сервер авториации в теле POST запроса в формате JSON: `POST /google/login`. Иначе возвращаем ошибку авторизации
76
+
4. При успешном входе получаем `token` сессии. Если сервер авторизации ответил ошибкой 401:
77
+
1. запоминаем значение id_token из ответа.
78
+
2. Предлагаем пользователю завести новый аккаунт нашего приложения, связанный с гуглом
79
+
5. Если пользователь соглашается, делаем запрос с `{"id_token": "<id-token>"}` в теле на адрес `POST /google/register`. При успешном входе получаем `token` сессии, иначе показываем экран ошибки авторизации
80
+
81
+
### Google/Physics: добавление аккаунта Google как второго метода входа
82
+
*Все примеры написаны для Google аккаунта, для аккаунта physics.msu.ru средует делать запросы к `/physics-msu` вместо `/google`*
83
+
84
+
1. Получаем адрес для запроса на сервер Google: `GET /google/auth_url`
85
+
2. Редиректим пользователя на этот url, пользователь входит в аккаунт и возвращается на страницу, которую можно узнать запросом `GET /google/redirect_url`
86
+
3. Если Google не передал в ответе GET параметр `error`, передаем данные на сервер авториации: `POST /google/register`, указываем заголовок `Authorization: <auth-token>`. Иначе возвращаем ошибку авторизации
87
+
4. При успешном входе получаем `token` сессии, иначе показываем экран ошибки авторизации
0 commit comments