CreateOAuthStateResult CreateOAuthState(CreateOAuthStateArg tArg)
tArg. Параметры выполнения операции.
Операция CreateOAuthState получает адрес сервиса аутентификации, по которому будет выполнен запрос на аутентификацию пользователя.
Для выполнения операции укажите в поле tArg.svcKey ключ сервиса аутентификации, а в поле tArg.redirectUri путь до корня веб-приложения, который будет использоваться в качестве адреса возврата в приложение после ввода учётных данных пользователя на внешнем сервисе. Ключ сервиса аутентификации может быть получен в результате выполнения операции GetOAuthSettings.
Результатом выполнения операции будет адрес сервиса аутентификации, который задан в настройках сервиса в реестре/файле settings.xml в поле AuthUrl, дополненный адресом возврата из tArg.redirectUri и сгенерированным параметром state для защиты от потенциальных атак типа CSRF при получении кода авторизации. Для получения подробной информации обратитесь к разделу «Настройка аутентификации через внешние сервисы».
Пользователь должен быть перенаправлен по полученному адресу для ввода учётных данных. При успешной аутентификации внешний сервис осуществляет обратное перенаправление в веб-приложение по адресу, который был задан в поле tArg.redirectUri с указанием параметров code и state.
Ниже приведён пример получения адреса внешнего сервиса аутентификации. В запросе передаётся ключ сервиса аутентификации и путь до веб-приложения, по которому будет осуществляться возврат. В ответе возвращается сформированный адрес.
{
"CreateOAuthState" :
{
"tArg" :
{
"svcKey" : "0",
"redirectUri" : "https:\/\/myserver.com\/FP_App_v10.x\/r\/#\/redirect"
}
}
}
{
"CreateOAuthStateResult" :
{
"authUrl" : "https://accounts.google.com/o/oauth2/auth/authorize?client_id=214433571309-nl9btulcqc3u05d8128uaei3fjrdni8r.apps.googleusercontent.com&response_type=code&access_type=offline&scope=https%3A//www.googleapis.com/auth/userinfo.profile&response_mode=query&redirect_uri=https://myserver.com/FP_App_v10.x/r/#/redirect&state=F52991C98C3F4543992414C9B89CD19A"
}
}
public static CreateOAuthStateResult CreateOAuthState(uint key, string redirect)
{
var somClient = new SomPortTypeClient(); // Прокси-объект для выполнения операций
// Параметры выполнения операции
var tCreate = new CreateOAuthState()
{
tArg = new CreateOAuthStateArg()
{
svcKey = key,
redirectUri = redirect
}
};
// Получение адреса сервиса аутентификации
var result = somClient.CreateOAuthState(tCreate);
return result;
}
См. также: