Java SDK
Обновлено 30 августа 2023
Java-библиотека для серверных приложений на Java, упрощающая получение Access Token и UserInfo.
Подключение
Установить в локальный maven-репозиторий артефакты:
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=sdk-2.0.2.jar -Djavadoc=sdk-2.0.2-javadoc.jar
Добавить в зависимости проекта SDK, прописав в pom.xml:
<dependency>
<groupId>ru.sberbank.id</groupId>
<artifactId>sdk</artifactId>
<version>2.0.2</version>
</dependency>
Использование
Создать объект SberApiClient, указав свои значения client_id, client_secret (подробнее), шлюзы вызова API. Адреса для запроса access token перечислены здесь(), для получения пользовательских данных - здесь().
SberApiClient client = new SberApiClient(
"6a0e103b-1873-4ed5-9903-b4fb51192b23", //client_id, нужно поменять на свой
"oYBjtOQmQNX4cMAmnKxAnvoGrWeccGKzKxvCKqtm0jQ", //client_secret, нужно поменять на свой
"https://api.sberbank.ru/ru/prod/tokens/v2/oidc", //url на получение access token (для подключений через двусторонний TLS)
//https://sec.api.sberbank.ru/ru/prod/tokens/v2/oidc - для подключений через ФПСУ
"https://api.sberbank.ru/ru/prod/sberbankid/v2.1/userinfo" //url на получение пользовательских данных (для подключений через двусторонний TLS)
//https://sec.api.sberbank.ru/ru/prod/sberbankid/v2.1/userinfo - для подключений через ФПСУ
);
Если используется 2-х сторонний TLS, необходимо установить SSL-контекст, указав путь к выпущенному p12-сертификату:
try (InputStream keyStoreStream = new FileInputStream("./cert.p12")) {
client.setSslContext(keyStoreStream, "put_your_key_here");
}
Выполнить запрос на получение Access Token, Id Token, указав значения:
- Адреса для возврата Auth Code;
- Auth Code, полученного через фронтенд;
- Nonce (который использовался при получении Auth Code);
- Code Verifier (обязателен, если используется PKCE).
Пример
AuthData authData = client.authRequest(
"http://127.0.0.1:8080/login", //redirect_uri
"3C506040-15A9-226B-EFB4-6389A0C0C165", //auth_code
"q5P5afVZ1kdehAfbn5XvnCkIfe9kDV1nSRicU8v6efU", //nonce
"dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk") //code_verifier (опционально)
.execute();