Данный сервис может быть использован для как средство аутентификации студентов МГТУ Станкин и получения их персональных данных, таких как имя, фамилия, номер студенческого билета, группы итп посредством протокола OAuth 2.0
Иными словами, вы можете сделать кнопку Войти через модульный журнал на своем сервисе, и получить с разрешения студента информацию о нем.
На данный момент автоматическая регистрация сервисов не реализована.
Если вы хотите добавить возможность аутентификации на вашем сервисе через модульный журнал, то напишите мне на почту
xiexed@gmail.com или заведите тикет и сообщите название сервиса, электронную почту для связи и redirect_uri (можно несколько),
на который будет перенаправляться пользователь после аутентификации и авторизации.
В ответ вы получите client_id и client_secret для вашего сервиса.
На вашем сайте вы должны разместить ссылку вида:
https://lk.stankin.ru/webapi/oauth/authorize?response_type=code&client_id=[client_id]&redirect_uri=[redirect_uri]
где
[client_id]- вашclient_id[redirect_uri]- один из присланных вамиredirect_uri
также вы можете указать параметры force_confirm=yes для принудительного запроса согласия пользователя, даже если он
уже дал его ранее, и state=[произвольная строка] - как дополнительное поле для идентификации пользователя.
При клике на эту ссылку пользователь будет перенаправлен на страницу запроса разрешения передачи данных вашему сервису.
В случае согласия пользователя пользователь будет перенаправлен на указанный redirect_uri при этом к строке запроса
будет добавлен параметер code (например http://your.site.com/token?code=1234), при помощи которого вы сможете получить
информацию о пользователе.
В случае отказа пользователя (или какой-то другой ошибки) вместо параметра code будет передан параметр error с текстом ошибки.
Получив code ваш сервис может в течении 5 минут обменять его на постоянный token и получить данные пользователя, отправив
POST-запрос вида:
POST /webapi/oauth/token HTTP/1.1
Host: lk.stankin.ru
Content-type: application/x-www-form-urlencoded
Content-Length: [длина тела запроса]
code=[полученный code]&client_id=[ваш client_id]&client_secret=[ваш client_secret]
В ответ вы получите JSON вида:
{
"access_token": "647801fa-bd52-4d85-87d1-01e80e00b380",
"token_type": "bearer",
"userInfo": {
"name": "Иван",
"surname": "Иванов",
"patronym": "Иванлыич",
"stgroup": "ИДБ-00-00",
"cardid": "1234567"
}
}Этот json вы будете получить каждый раз, когда пользователь будет проходить аутентификацию по этой процедуре. Значение
access_token может меняться со временем, например если пользователь отзовет право вашего сервиса.
Таким образом вы можете аутентифицировать пользователя на своем сервисе через модульный журнал.
В настоящее время полученный токен особой пользы не приносит, так как всё что можно при помощи него сделать, это отправить запрос
https://lk.stankin.ru/webapi/user/info
добавив заголовкок запроса Authorization: Bearer [ваш токен].
В ответ вы получите всё тот же JSON:
{
"name": "Иван",
"surname": "Иванов",
"patronym": "Иванлыич",
"stgroup": "ИДБ-00-00",
"cardid": "1234567"
}В дальнейшем возможно добавление других функций.
Свои замечания и пожелания этот счет вы всегда можете оставить в треккере.