Смартфон научили превращать любые предметы в токен аутентификации

Интернет-эквайринг Заполнить заявку
  • Модули для CMS
  • Методы интеграции
  • Документация API
  • 1. Статистика
  • 2. Платежи
  • 3. Счета
  • 4. Настройки
  • 5. Модификация настроек
  • 6. Токен безопасности
  • 7. Экспорт данных
  • 8. Привязка карты
  • Basic HTTP-авторизация
  • Возможности и примеры использования
  • Личный кабинет
  • Онлайн касса 54-ФЗ
  • QR-Коды СБП

Для обеспечения безопасности и предотвращения CSRF-атак, любые POST запросы выполняются с передачей специального дополнительного параметра – токена. Чтобы получить токен безопасности нужно выполнить запрос следующего вида:

6.1. Получение токена безопасности /info/settings/token/

Тип Формат запроса 6.1
GET /info/settings/token/

Результатом данного запроса будет объект

1 2 3 4 5 [ { “token” : “fd50e47596cff6c63c7ea0a633c0d2a8” } ]

Полученный token необходимо использовать как дополнительный параметр для каждого POST запроса. Смена токена происходит раз в 24 часа.

Ниже приведен пример на PHP получения токена и выполнения запроса на добавление в список email рассылки пользователя. ( Запрос протокола 5.3.). Обратите внимание, что при отправке запросов используется Basic HTTP-авторизация.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 $user=“json”; # Логин в личном кабинете PayKeeper $password=“json”; # Соответствующий логину пароль $base64=base64_encode(“$user:$password”); # Формируем base64 хэш $headers=Array(); array_push($headers,‘Content-Type: application/x-www-form-urlencoded’); array_push($headers,‘Authorization: Basic ‘.$base64); # Подготавливаем заголовок для авторизации $server_paykeeper=“demo.open-processing.ru”; # укажите адрес вашего сервера PayKeeper # адрес demo.open-processing.ru – пример! # Готовим первый запрос на получение токена $uri=“/info/settings/token/”; # Запрос на получение токена $curl=curl_init(); # curl должен быть установлен curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); curl_setopt($curl,CURLOPT_URL,$server_paykeeper.$uri); curl_setopt($curl,CURLOPT_CUSTOMREQUEST,‘GET’); curl_setopt($curl,CURLOPT_HTTPHEADER,$headers); curl_setopt($curl,CURLOPT_HEADER,false); $out=curl_exec($curl); # Инициируем запрос к API $php_array=json_decode($out,true); # Сохраняем результат в массив if (isset($php_array[‘token’])) $token=$php_array[‘token’]; else die(); # Сохраняем полученный токен в $token # Готовим к выполнению запрос на добавление email в список рассылки $email=“example@paykeeper.ru”; # Почта для добавления $uri=“/change/organization/addreportemail/”; # Запрос 5.3 JSON API $curl=curl_init(); # curl должен быть установлен curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); curl_setopt($curl,CURLOPT_URL,$server_paykeeper.$uri); curl_setopt($curl,CURLOPT_CUSTOMREQUEST,‘POST’); curl_setopt($curl,CURLOPT_HTTPHEADER,$headers); curl_setopt($curl,CURLOPT_HEADER,false); curl_setopt($curl,CURLOPT_POSTFIELDS,“token=$token&email=$email”); $out=curl_exec($curl); # Инициируем запрос к API print_r(json_decode($out)); # Выводим результат запроса

Если запрос выполнен успешно, результатом будет объект следующего вида:

1 2 3 4 5 [ { “result”: “success” } ]

52 906 Tags: вконтактеликбез image

[статья обновлена 1 декабря 2020]

В последнее время появляется огромное количество онлайн-сервисов, компьютерных или мобильных приложений, скриптов, которые предназначены для ВКонтакте, но для их работы необходимо пройти авторизацию через access_token.

Некоторые сервисы предоставляют возможности получить ключ доступа, который необходим для авторизации. На это уходит несколько секунд. Но как быть, если вы загрузили скрипт, но необходимого access_token ключа нет?

Как создать public VK?

Краткая инструкция для получения токена сообщества

Заходим в настройки сообщества. (если у вас нет сообщества, значит его необходимо создать):

1.  Работа с Api > 2. Получить ключ > 3. Скопируйте его (это ключ (токен) и есть access_token сообщества)

Вот и всё. А если же вам нужен токен пользователя, тогда вся необходимая информация находится ниже в статье.

Получить токен через приложение:

Где взять access_token?

Сегодня мы разберем то, как авторизоваться в ВКонтакте, используя прямую ссылку API ВКонтакте (на базе протокола OAuth) или, как его еще называют, Implicit flow. Авторизация, если вы используете этот метод, производится через приложение Вк, которое указывается как ID. Сегодня такой метод считается самым безопасным. Вы можете натолкнуться на статьи, в которых рассказывается о методах получения access_token с использованием приложений, которые вызывают (и не зря!) подозрение. Но сегодня мы поговорим о том, как авторизоваться через официальные приложения ВКонтакте.

Секрет получения токена – в переходе по ссылке, в которой содержится ID определенного приложения ВКонтакте.

Ссылка может быть следующего вида:

https://oauth.vk.com/authorize?client_id=ID_ПРИЛОЖЕНИЯ&scope=notify,photos,friends,audio,video,notes,pages,docs,status,questions,offers,wall,groups,messages,notifications,stats,ads,offline&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token

Если с этим разобрались, закономерно всплывает следующий вопрос: где взять эту самую ссылку?

Далее я расскажу о двух основных методах, которые позволят получить токен:

Читайте также:  Мезотерапия лица: эффективность процедуры, показания и методы проведения

✅ Получение токена через собственное приложение.

  • С использованием собственного приложения. Этот метод заведомо рассчитан на то, что у вас есть приложение собственной разработки. Если у вас его нет – самое время создать. Сделать это очень легко: достаточно перейти по ссылке vk.com/apps?act=manage и кликнуть на «Создать приложение».

image

Система попросит ввести название для приложения. Как пример, можете использовать «Получение access_token». Проверьте, если ли галочка «Standalone-приложение». Далее нажимайте на «Подключить приложение».

Чтобы подтвердить приложение, надо будет ввести код, который вам придет на указанный номер телефона. На этом этапе создания приложения можно зафиксировать мобильное устройство к странице Вк. Чтобы это сделать, надо кликнуть на «Привязать устройство». Можно и без привязки к аккаунту. Тогда просто необходимо перейти по ссылке «Подтвердить через SMS».

После того, как вы подтвердите регистрацию, откроется страница, на которой изложена информация о приложении, которое было создано. Нажмите на «Настройки», которые расположены в левом углу. Там расположен client_id – ID приложения ВКонтакте.

ID необходимо скопировать. Далее – вставьте в ссылку, заменив ID_ПРИЛОЖЕНИЯ. Получится как-то так:

https://oauth.vk.com/authorize?client_id=5563738&scope=notify,photos,friends,audio,video,notes,pages,docs,status,questions,offers,wall,groups,messages,notifications,stats,ads,offline&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token

5563738 – это ID приложения, которое вы создали. У вас получится похожая комбинация. После того как создали приложение перейдем к самому вопросу как получить access_token.

 Получение токена через официальное приложение VK.

Метод отличается от того, который был описан ранее, лишь тем, что вам не нужно создавать собственное приложение. Используйте уже созданное. Ему можно стопроцентно доверять.

Метод будет рассматривать на примере ВКонтакте для Android. ID такой: 2890984. Именно эту комбинацию надо подставить в ссылку.

Читайте также:  Комбинации горячих клавиш Windows 10 и macOS

Получится следующее:

https://oauth.vk.com/authorize?client_id=2890984&scope=notify,photos,friends,audio,video,notes,pages,docs,status,questions,offers,wall,groups,messages,notifications,stats,ads,offline&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token

На этом заканчивается часть статьи, в которой мы рассмотрели варианты идентификации приложения, которые могут быть использованы для авторизации. Осталось коснуться всего лишь нескольких моментов:

✅ Права доступа:

  • В примерах, которые описаны выше, параметр scope содержит многие названия разделов социальной сети ВКонтакте: audio, photos, notify, friends. Это те разделы, которые будут открыты для приложения. Аccess_token может быть использован по-разному. ID, который вы используете, принадлежит доверенному приложению. Именно поэтому вы можете создать access_token, у которого есть все права доступа. Он становится универсальным, так что может быть использован везде.

✅ access_token:

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

Уже после этого в вашей адресной строке появится необходимый ключ. Он копируется вручную: после access_token= и перед &expires_in.

Ну и закончить стоит несколькими советами:

  • Не передавайте ключ access_token посторонним лицам.
  • Не стоит проходить авторизацию с использованием приложений, которые не вызывают доверия. Рекомендуется использовать только собственные или официальные.
  • Удалите ключ после того, как вы его использовали. Если понадобится, вы всегда сможете создать новый.
  • Все активные сеансы стоит завершить после того, как в них исчезнет необходимость. Это вы можете сделать через настройки безопасности аккаунта.

Вам может быть интересно:

Что разряжает аккумулятор вашего телефона

3 способа сохранить изображение с instagram

Как установить Linux. Пошаговая инструкция

Добрый день, столкнулся с таким вот новшеством на гитхабе. Если кратко, то они отключили авторизацию по паролям через https.

Это конечно хорошо что они заботятся о нашей безопасности, но лично мне пришлось потратить чуть ли не целый час чтобы разобраться как сейчас подключаться правильно.

Там будет доступно создание токена и все его настройки. В этой же вкладке можно посмотреть уже существующие токены и скопировать их. Что делать с этим token? вот про это мало что расписано, но в недрах справки выясняется что этот токен сейчас можно использовать вместо пароля при внешней авторизации, чтобы избежать ошибки которую мы получили в начале.

Подключить внешний гит репозитарий на github.com можно будет командой:

git remote add origin http://LOGIN:TOKEN@github.com/nehrena_нужный_путь/test_repo.git

Авторизация через SSH key

  1. Открываем свой терминал.
  2. Создаём новый ssh ключ на своей локальной машине, обязательно указываем тот же email, что иcпользуется на github.com.
    ssh-keygen -t ed25519 -C "your_email@example.com"

    На старых линуксах может не поддерживаться новый алгоритм Ed25519, можно воспользоваться вот таким:

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

    Тем самым мы создали новый ключ с меткой в которой указан наш емайл.

    > Generating public/private ed25519 key pair.
  3. Сохраняем в файл наш ключ.
    > Enter a file in which to save the key (/home/you/.ssh/id_ed25519): [Press enter]
  4. Далее нас попросят ввести секретную фразу для ключа д
    > Enter passphrase (empty for no passphrase): [Type a passphrase]  > Enter same passphrase again: [Type passphrase again]

Сейчас нам нужно добавить свой ключик в аккаунт на github.com. Для этого сделаем следующее.

  1. Запускаем ssh-agent в фоне (background).
    eval "$(ssh-agent -s)"   > Agent pid 59566
  2. Добавляем свой SSH private key в ssh-agent. Если в начале у вас был выбран другой путь, то тут его тоже нужно будет изменить.
    ssh-add ~/.ssh/id_ed25519
  3. Добавляем свой ключ на GitHub. Чтобы найти собственно сам ключ нужно будет в только что созданной директории просмотреть файлик id_ed25519.pub. Просто копируем его содержимое и вставляем в нужную вкладку на GitHub.
  4.  Если воздникли вопросы вот тут есть инструкция на английском Adding a new SSH key to your GitHub account.

Ну и после всего этого подключить внешний репозитарий на GitHub можно будет через команду:

git remote add origin git@github.com:LOGIN/test_repo.git

Как видно, тут мы уже не вводим никаких логинов и паролей, авторизация происходит по созданному выше ключу. А если нужно изменить уже существующий репозитарий:

git remote set-url origin git@github.com:LOGIN/test_repo.git

Если вы только начали изучать и пользоваться Git, то вот вам отличная ссылка:

GitHowTo — это интерактивный самоучитель, который познакомит вас с основами Git, там есть версия на русском.

В этом руководстве мы покажем, как залистить любой токен на Uniswap.

Все мы знаем, что криптовалюты можно покупать, продавать и обменивать на другие криптовалюты. Но для этого придется полагаться на централизованные биржи.

Проблема в том, что вы не можете торговать некоторыми монетами, пока биржа не решит их залистить. И хуже всего то, что период ожидания может быть долгим, а стоимость листинга на бирже слишком высока в зависимости от того, насколько популярна конкретная биржа.

Благодаря DeFi (децентрализованное финансирование) и всем DEX (децентрализованным биржам), которые доступны сегодня, любой может самостоятельно зарегистрировать токен и сделать его доступным для торговли. Никаких комиссий за листинг на бирже, никакого периода ожидания и никаких ненужных хлопот.

ЧИТАЙТЕ: Лучшие кошельки DeFi для децентрализованного финансирования

В настоящее время на DEX, например, Uniswap, можно добавлять только токены. В частности, токены ERC-20 (токены на основе Ethereum).

ЧИТАЙТЕ: Лучшие кошельки для хранения токенов ERC20

В этом руководстве мы продемонстрируем, как залистить токен на децентрализованную биржу Uniswap. Может ли это быть любой, к примеру, Ваш собственный токен ERC20, который вы хотите продать? Или это может быть ваш любимый токен, который пока нигде недоступен для торговли?

Прежде чем мы объясним, как листить токены, давайте сделаем краткий обзор на Uniswap и поймем, как работает листинг токенов!

Что такое Uniswap?

Uniswap – это децентрализованная биржа, но если быть точным, то – это автоматизированная биржа маркет-мейкеров (AMM).

Любые токены ERC20 могут быть залистины и проданы на Uniswap. Это достигается засчет использования смарт контрактов.

Как работает листинг токенов?

Uniswap работает на рынке торговых пар. Каждая торговая пара управляется и защищается уникальным смарт-контрактом, который развертывается в сети Ethereum.

Кто угодно, включая Вас, может создать торговую пару и стать поставщиком ликвидности, поместив резервы в пул торговой пары.

После того, как пара развернута, пользователи могут начать обмен и обеспечить ликвидность. И все это без необходимости создавать учетную запись или проходить KYC.

Uniswap не полагается на ордера. Вместо этого он использует алгоритм, определяющий цену. Мы объясним принцип работы алгоритма и все его технические аспекты в отдельном руководстве, поэтому обязательно добавляйте наш сайт в закладки!

Uniswap предоставляет пользователям простой интерфейс для обмена между ETH и любыми токенами ERC20. Его лучше всего использовать, когда вы хотите быстро обменять токены по текущей рыночной цене.

Теперь, когда вы узнали, что такое Uniswap, и как он работает, давайте посмотрим, как разместить токены на этой бирже.

Требования для листинга токена ERC20 на Uniswap

Допустим, вы начали проект DeFi, у которого есть собственный токен ERC20, и вы хотите разместить его на Uniswap. Вот что вам понадобится:

  1. Кошелек Web 3. Вы можете подключить такие кошельки, как MetaMask, Wallet connect, Coinbase Wallet, Fortmatic и Portis. Самым популярным из этого списка является расширение для браузера MetaMask.
  2. Контрактный адрес токена ERC20, который вы хотите добавить в Uniswap. Мы надеемся, что токен уже развернут в основной сети Ethereum и доступен в Вашем кошельке MetaMask. Вы можете получить адрес контракта токена на Etherscan.io.
  3. Далее Вам понадобится ETH для покрытия платы за газ и ликвидности, которую вы хотите предоставить торговой паре. Если вы хотите поменять местами, добавить ликвидность или просто залистить токены, вам понадобится Ethereum в вашем кошельке для оплаты сетевых комиссий.

ЧИТАЙТЕ: Хотите самым первым получать уникальную и важную информацию? Добавляйте нас в закладки! Подписывайтесь на наши проекты!

1. Открытие диалога авторизации OAuth

Во время создания приложения потребуется указать redirect_uri, который будет использован во время авторизации OAuth

Для начала процесса авторизации нужно открыть новое окно браузера (или webView) и осуществить переход на специально сформированный URL:

https://connect.ok.ru/oauth/authorize?client_id={clientId}&scope={scope}&response_type={{response_type}}&redirect_uri={redirectUri}&layout={layout}&state={state}

Название Обязательный Описание
client_id Да Идентификатор приложения {application id}
scope Да Запрашиваемые права приложения, разделённые символом ‘;’. См. права приложения
response_type Да Тип ответа от сервера, укажите code
redirect_uri Да
layout Нет
state Нет Параметр состояния. В неизменном виде пробрасывается в redirect_uri. Позволяет передавать произвольные данные между разными фазами OAuth и защищаться от xsrf.

2. Разрешение прав доступа

Если пользователь ранее выдал приложению все права, указанные в параметре scope, то окно автоматически закрывается и дополнительное подтверждение от пользователя не требуется.

После перехода по сформированному URL пользователь будет должен ввести свой логин и пароль, если ранее он этого не сделал. После входа на сайт ему будет предложено авторизовать приложение и подтвердить запрошенные права:

image

3. Получение code

При использовании OAuth в игровых приложениях, размещенных вне соц. сети Одноклассники:

  • требуется подключать OAuth с использованием того же приложения, которое используется и в версии, размещенной на платформе ОК.

С 15 июля 2020 года:

  • пользователи, ранее играющие в это приложение на платформе ОК, при прохождении авторизации через OAuth будут автоматически перенаправлены на соответствующую версию приложения на платформе ОК;
  • пользователи, ранее на игравшие в это приложения на платформе ОК, при прохождении авторизации через OAuth перенаправляться не будут, OAuth будет работать согласно документации

Такое использование Oauth не противоречит п. 5.6 правил платформы и не будет расценено как нарушение правил размещения приложений на платформе.

После подтверждения авторизации пользователь будет перенаправлен на указанный при открытии диалога авторизации redirect_uri, в GET-параметрах которого будет передан ключ доступа code, а также state в случае, если он был указан на этапе 1:

{redirect_uri}?code={code}&state={state}

Полученный параметр code действителен в течение 2 минут.

В случае ошибки или отказа от авторизации будет передан параметр error, идентифицирующий причину проблемы:

{redirect_uri}#error={error}&state={state}

4. Получение access_token

Для получения access_token необходимо совершить POST-запрос с сервера вашего сайта к API на URL:

https://api.ok.ru/oauth/token.do?code={code}&client_id={client_id}&client_secret={client_secret}&redirect_uri={redirect_uri}&grant_type={grant_type}

Название Описание
code Код авторизации, полученный в пункте 3
client_id Идентификатор приложения {application id}
client_secret Секретный ключ приложения {application_secret_key}
redirect_uri Тот же URI переадресации, что был указан в пункте 1
grant_type Тип выдаваемых прав, укажите authorization_code

В ответе от сервера приходит json, содержащий запрошенный access_token или информацию об ошибке.

Вид ответа в случае успеха:

{ "access_token": "{access_token}", "token_type": "session", "refresh_token": "{refresh_token}", "expires_in":"{expires_in}" }
  • access_token – токен доступа, используемый для формирования запроса к API;
  • token_type – на данный момент возвращается только session;
  • refresh_token – токен обновления, который можно использовать в дальнейшем для упрощённой процедуры авторизации. Действителен в течение 30 суток;
  • expires_in – время действия токена доступа в секундах.

Вид ответа в случае ошибки

{ "error": "{error}", "error_description": "{error_description}" }
  • error – код ошибки;
  • error_description – описание ошибки.

5. Использование refresh_token

Имея токен обновления refresh_token, можно получить access_token по упрощённой процедуре, сделав один POST-запрос на URL:

https://api.ok.ru/oauth/token.do?refresh_token={refresh_token}&client_id={client_id}&client_secret={client_secret}&grant_type={grant_type}

Название Описание
refresh_token Маркер обновления, полученный ранее в пункте 4
client_id Идентификатор приложения {application id}
client_secret Секретный ключ приложения {application_secret_key}
grant_type Тип выдаваемых прав, укажите refresh_token

Формат ответа аналогичен получению access_token, но без refresh_token.

Возможные ошибки

Ошибка Варианты возникновения
invalid_request
invalid_client
unauthorized_client
access_denied * пользователь не авторизовал приложение (например, удалил его в настройках, описание ошибки – Access denied) * время действия refesh_token истекло (описание ошибки – Refresh token expired) * пользователь принудительно вышел со всех устройств (см. настройки, описание ошибки – Logout all)
invalid_grant
invalid_token

Оцените статью
Рейтинг автора
4,8
Материал подготовил
Егор Новиков
Наш эксперт
Написано статей
127
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий