Процесс авторизации
Для авторизации пользователя через единую авторизацию пользователей ТПУ необходимо выполнить следующие действия:
-
Создать приложение (перейти по ссылке https://api.tpu.ru/dashboard).
-
Создать платформу и указать версию приложения (получить api_key).
-
Настроить авторизацию через Oauth (получить client_id и client_secret) - указать доверительные домены (каждый на отдельной строке)
-
Дождаться проверки приложения со стороны ТПУ и начать пользоваться.
Процесс авторизации
1. Необходимо перенаправить браузер пользователя по адресу
https://oauth.tpu.ru/authorize
передав следующие параметры
Ключ | Значение |
client_id (обязательно) | Идентификатор приложения |
redirect_uri (обязательно) |
Ссылка, на которую после успешной авторизации сервер делает редирект пользователя.
|
response_type (обязательно) | Тип ответа, который Вы хотите получить. В большинстве случаев достаточно указать code. |
state (обязательно) | Параметр состояния в протоколах авторизации позволяет восстановить предыдущее состояние приложения.
Его используют, чтобы защитить приложение от атак, связанных с подделкой запросов (CSRF). Для этого с каждым запросом аутентификации связывают уникальное и не поддающееся угадыванию значение |
Пример запроса
https://oauth.tpu.ru/authorize?client_id=1&redirect_uri=http://example.com/callback&response_type=code&state=bdc1c79ecb83c00122d24a77e06aa5dc16c8280f7541e89a32108659c353f5
Ввод корпоративных данных
2. Если пользователь уже авторизован, то браузер будет перенаправлен по адресу redirect_uri, в противном случае пользователю будет предложено ввести свой корпоративный логин и пароль в системе.
3. Получение токена авторизации access_token для пользователя и для приложения.
https://oauth.tpu.ru/access_token
Ключ | Значение |
client_id (обязательно) | Идентификатор приложения |
client_secret (обязательно) | Секретный ключ приложения |
timestamp |
Текущая метка времени в формате Unix timestamp Данный параметр обязательный, если требуется произвести обезличенную авторизацию приложения. |
code (обязательно, для авторизации пользователей) |
Одноразовый короткоживущий код, который клиент должен использовать для обмена на токен доступа, полученный на первом этапе авторизации. Данное поле обязательно - если авторизуется пользователь. |
state (обязательно) | Параметр состояния в протоколах авторизации позволяет восстановить предыдущее состояние приложения.
Его используют, чтобы защитить приложение от атак, связанных с подделкой запросов (CSRF). Для этого с каждым запросом аутентификации связывают уникальное и не поддающееся угадыванию значение |
grant_type (обязательно) |
Тип авторизации
|
sig (обязательно, для авторизации приложений) |
Контрольная сумма GET-параметров из HTTP-запроса. Данный параметр обязательный если был пропущен первый шаг получения code.
|
Пример запроса
https://oauth.tpu.ru/access_token?client_id=1&client_secret=H2PkHm&redirect_uri=http://mysite.ru&code=7a6fa4dff77a228eeda56603b8f53806c883f011c40b72630bb50df056f6479&grant_type=authorization_code
В результате выполнения данного запроса Ваш сервер получит вновь созданный access_token. Вместе с access_token серверу возвращается время жизни ключа expires_in в секундах. expires_in по умолчанию 24 часа. Процедуру авторизации приложения необходимо повторять в случае истечения срока действия access_token, смены пользователем своего логина или пароля, или удаления приложения из настроек. Также в ответе присутствует refresh_token - срок годности 1 неделя, с помощью его можно получить новый access_token не проводя процедуру авторизации повторно.
4. Проверка токена авторизации, данный метод вернёт сведения об указанном токене авторизации
https://oauth.tpu.ru/check-token
Ключ | Значение |
Authorization (обязательно) |
В HTTP заголовке-Authorization требуется указать строку следующего формата
|
Пример ответа
{
"message": "Valid",
"body": {
"created": "2025-07-21 09:32:26",
"expired": "2025-07-22 09:32:26",
"client_id": 123,
"user_id": 123,
"lichnost_id": 123,
"username": "portal_login"
}
}
5. Получение данных об авторизированном пользователе
https://oauth.tpu.ru/user
Ключ | Значение |
Authorization (обязательно) |
В HTTP-заголовке Authorization требуется указать строку следующего формата
|
Пример ответа
{
"user_id": 123,
"lichnost_id": 123,
"elements": {
"familiya": "Фамилия",
"imya": "Имя",
"otchestvo": "Отчество"
},
"full_name": "Фамилия Имя Отчество",
"last_name": "Фамилия",
"first_name": "Имя",
"patronymic": "Отчество",
"email": "login@tpu.ru",
"message": "OK"
}
6. Завершение сессии пользователя. Для успешной завершении сессии пользователя нужно сделать редирект на следующий URL.
https://oauth.tpu.ru/auth/logout?redirect=<redirect_uri>
Ключ | Значение |
redirect_uri | Cсылка, на которую, после успешного завершения сессии, сервер делает редирект пользователя. |
На этой странице вы должны локально завершить сессию пользователя и сделать редирект на главную страницу вашего приложения.
Вместо заключения
В вашем приложении вы должны хранить в сессии идентификатор авторизованного пользователя и access_token. Для получения других данных о пользователе вы можете воспользоваться доступными методами RESTful API.
Секретные ключи вашего приложения вы не должны хранить на клиенте и обязаны обеспечить надлежащую их сохранность.