Skip to main content

Процесс авторизации

Для авторизации пользователя через единую авторизацию пользователей ТПУ необходимо выполнить следующие действия:

  1. Создать приложение (перейти по ссылке https://api.tpu.ru/dashboard).

  2. Создать платформу и указать версию приложения (получить api_key).

  3. Настроить авторизацию через Oauth (получить client_id и client_secret) - указать доверительные домены (каждый на отдельной строке)

  4. Дождаться проверки приложения со стороны ТПУ и начать пользоваться.

Процесс авторизации

1. Необходимо перенаправить браузер пользователя по адресу

https://oauth.tpu.ru/authorize

 передав следующие параметры

Ключ Значение
client_id (обязательно) Идентификатор приложения
redirect_uri (обязательно)

Ссылка, на которую после успешной авторизации сервер делает редирект пользователя.

домен указанного адреса должен соответствовать основному домену в настройках приложения и перечисленным значениям в списке доверенных 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, в противном случае пользователю будет предложено ввести свой корпоративный логин и пароль в системе.

Screenshot_71.jpg

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 требуется указать строку следующего формата

Bearer <Токен авторизации>

 

Пример ответа
{
    "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 требуется указать строку следующего формата

 

Bearer <Токен авторизации>

 

Пример ответа
{
    "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.

Секретные ключи вашего приложения вы не должны хранить на клиенте и обязаны обеспечить надлежащую их сохранность.