Ответ 1
В этом ответе я предполагаю, что вы используете Rails (или некоторую другую фреймворк Rack), потому что Omniauth не имеет большого смысла без этого.
Начните с OAuth2. OAuth - это система авторизации пользователя на одном сайте с использованием их аутентификации на другом сайте. OAuth сама описывает систему, с помощью которой это управляется, но не указывает код, используемый сайтами для его выполнения. (Это означает, что, например, сайт на базе PHP может использовать сайт на основе Ruby как поставщик, и не нужно знать, что происходит за кулисами у провайдера.)
Здесь находится Omniauth. Omniauth - это пакет для поддержки децентрализованной аутентификации на сайтах на стойке. OAuth2 является одним из протоколов, которые он поддерживает для обработки этого, и включает в себя класс с именем OAuth2, который является реализацией Ruby спецификации OAuth2. Вы можете думать о Omniauth как обертке вокруг OAuth2, которая обрабатывает детали протокола, не беспокоя вас слишком много с ними.
Вы можете использовать гейм/класс OAuth2 без использования Omniauth и сами справиться с особенностями аутентификации над OAuth2, но я не уверен, почему.
Насколько вы можете делать с Omniauth, что невозможно с OAuth, большинство из них аутентифицируется с помощью других служб, отличных от OAuth (Omniauth позволяет использовать построенные сообществом "стратегии" для аутентификации, например, Stack Exchange).