проект с открытым исходным кодом. Я не использовал это. Но он использует документированный алгоритм (отмеченный в RFC, указанном на странице проекта с открытым исходным кодом), и реализации аутентификатора поддерживают несколько учетных записей.
Фактический процесс прост. Одноразовый код, по сути, является генератором псевдослучайных чисел. Генератор случайных чисел - это формула, которая после получения начального или начального числа продолжает создавать поток случайных чисел. При заданном числе, хотя числа могут быть случайными друг для друга, сама последовательность является детерминированной. Таким образом, когда ваше устройство и сервер синхронизированы, случайные числа, которые создает устройство, каждый раз, когда вы нажимаете «кнопку следующего номера», будут такими же, случайными, числами, которые ожидает сервер.
Безопасная система одноразовых паролей более сложна, чем генератор случайных чисел, но концепция аналогична. Есть и другие сведения, которые помогут синхронизировать устройство и сервер.
Так что нет необходимости, чтобы кто-то еще размещал аутентификацию, как, например, OAuth. Вместо этого вам нужно реализовать этот алгоритм, который совместим с приложениями, которые Google предоставляет для мобильных устройств. Это программное обеспечение доступно (должно быть) в проекте с открытым исходным кодом.
В зависимости от вашей сложности, у вас должно быть все необходимое для реализации серверной части этого процесса, включая проект OSS и RFC. Я не знаю, есть ли конкретная реализация для вашего серверного программного обеспечения (PHP, Java, .NET и т. Д.)
Но, в частности, вам не нужен внешний сервис для этого.