import 'package:pkce/pkce.dart';
void main() {
final pkcePair = PkcePair.generate();
print(pkcePair.codeVerifier);
print(pkcePair.codeChallenge);
}final flow = ConfidentialFlowData(state, codeChallenge);
(await VKID.getInstance()).authorize(
...
authParams: UIAuthParamsBuilder()
.withAuthFlow(flow)
.build(),
...
)curl "https://id.vk.ru/oauth2/auth" -d "client_id=7915193&grant_type=authorization_code&code_verifier=KnHKAdqyW57MUbjRcScaZRU9Bw26Kez9zwBgti...&device_id=1111&code=1f06e0c317b5b524c6&redirect_uri=vk7915193://vk.ru/blank.html"| Название | Описание |
|---|---|
| grant_type | Всегда имеет значение authorization_code |
| code | Код авторизации, полученный из callback onAuthCode |
| code_verifier | code_verifier, для которого был сгенерирован code_challenge |
| client_id | Идентификатор приложения. Должен совпадать с client id, который вы указали при инициализации SDK |
| device_id | Уникальный идентификатор вашего мобильного устройства, полученный из callback onAuthCode |
| redirect_uri | Адрес для редиректа после авторизации, полученный из callback onAuthCode |
| state | Уникальная строка, сгенерированная по тем же правилам, что и для авторизации. Подробнее см. в подразделе Требования к параметрам выше |
{
"access_token": "XXXXX",
"refresh_token": "XXXXX",
"id_token": "XXXXX",
"expires_in": 0,
"user_id": 1234567890,
"state": "XXX"
}(await VKID.getInstance()).authorize(
...
params: AuthParamsBuilder()
.withScopes({ "scope_1", "scope_2"})
.build()
...
)OneTap(
...
authParams: UIAuthParamsBuilder()
.withScopes(scopes?.split(" ").toSet() ?? const {})
.build(),
...
)