Перейти к содержанию

SignerClient > AuthorizationSession

AuthorizationSession

class AuthorizationSession(url: String, tokenId: String, permissions: List<String>)

Клиентский refresh-token авторизации

После установления, сессия авторизации метод (establish) продолжает обновлять доступ и refresh token-ы по требованию. В случае истечения срока действия токена, генерируется исключение и метод останавливается пока не создастся новая сессия.

Для нескольких параллельных сессий нужно предоставить точный и стабильный для каждой сессии tokenId (например ID устройства)

Заметьте

Периодического обновления не происходит в режиме ожидания, поэтому срок действия сессии неминуемо истечет. Однако, можно периодически вызывать метод refresh().

Параметры

androidJvm

url authorization service эндпоинт (HTTP(S))
tokenId ID сессии авторизации, контролирует несколько параллельных сессий
permissions список необходимых разрешений для этой сессии

Пример

val auth = AuthorizationSession(
                url = "https://api-cloud-dev.spatium.io/authorization/v1",
                tokenId = UUID.randomUUID().toString(),
                listOf("read", "secret")
            )

val data = jsonPost(
    "https://api-cloud-dev.spatium.io/authorization/v1/api/security-factor/credentials",
    mapOf(Pair("request-id", UUID.randomUUID().toString())),
    CredentialsRequest(username = "mario", password = "123456"),
    CredentialsResponse::class.java
)

auth.establish(listOf(data!!.data.securityToken))

val first = auth.getPermissionToken()

Thread.sleep(2_000)

auth.refresh()

val second = auth.getPermissionToken()

assertFalse(first == second) 

Конструкторы

AuthorizationSession [androidJvm]
constructor(url: String, tokenId: String, permissions: List<String>)

Функции

Имя Описание
establish [androidJvm]
suspend fun establish(securityTokens: List<String>)
Устанавливает новую сессию авторизации, заменяет предыдущую если она была.
getPermissionToken [androidJvm]
suspend fun getPermissionToken(): String
Получение текущего permission (access) токена
refresh [androidJvm]
suspend fun refresh()
Manually refresh session