Примеры интеграции
В примере JavaScript пароль приходит из формы вашего приложения, а токен остаётся в памяти. Вызовите signIn(identifier, password) из обработчика отправки формы.
JavaScript · вход и профиль
const base = 'https://idaris.tech/api.php';
let token = null;
async function request(action, options = {}) {
const response = await fetch(`${base}?action=${action}`, {
...options,
credentials: 'omit',
headers: {
...(token ? { Authorization: `Bearer ${token}` } : {}),
...options.headers
}
});
const data = await response.json();
if (!response.ok) {
if (response.status === 401) token = null;
throw new Error(data.error || `HTTP ${response.status}`);
}
return data;
}
async function signIn(identifier, password) {
const session = await request('login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ method: 'auto', identifier, password })
});
token = session.access_token;
const { account } = await request('me');
return account;
}
async function signOut() {
await request('logout', { method: 'POST' });
token = null;
}PHP · профиль (расширение cURL)
<?php
$token = getenv('ARISID_TOKEN');
if (!$token) throw new RuntimeException('Set ARISID_TOKEN');
$curl = curl_init('https://idaris.tech/api.php?action=me');
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer '.$token],
CURLOPT_TIMEOUT => 15,
]);
$body = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$error = curl_error($curl);
curl_close($curl);
if ($body === false) throw new RuntimeException($error);
$data = json_decode($body, true, 512, JSON_THROW_ON_ERROR);
if ($status !== 200) throw new RuntimeException($data['error'] ?? 'API error');
$account = $data['account'];