Основная проблема с использованием OAuth для проверки подлинности заключается в том, что вам необходимо принять идентичность, основанную на доступе к данному ресурсу. В некоторых случаях это может быть допустимым предположением, но OAuth не гарантирует этого. Если доступ к ресурсу, который вы используете для аутентификации, делегирован другой стороне, и вы предполагаете, что идентификация основана на доступе к этому ресурсу, то это уязвимость, которая может позволить самозванцу пройти аутентификацию от имени другого подписчика. Это не имеет ничего общего с честностью поставщика OAuth или его отсутствием, а также с инструментом, для которого он не предназначен.
В случае Facebook OAuth может поддерживать аутентификацию, основанную только на подписчике, который может авторизовать приложение: если вы получаете авторизацию для доступа к профилю отдельного лица, это означает, что подписчик должен был пройти аутентификацию в Facebook. Похоже, это поддерживаемый вариант использования. Однако если позднее Facebook, например, позволяет другим приложениям или пользователям авторизовать ресурсы от имени своих подписчиков, то эта гарантия теряется.
В конечном счете, чтобы использовать OAuth для аутентификации, вам нужно сделать много предположений. Вы должны предположить, что пользователь, которого вы аутентифицируете, и только этот пользователь имеет право делегировать данный ресурс; Вы должны предположить, что полученные вами данные запроса достаточны для привязки к известной личности; Вы должны предположить, что механизм аутентификации был достаточен для аутентификации третьей стороне (что, если файл не был конфиденциальным и анонимный доступ мог быть предоставлен?); и вы должны предположить, что эти качества сохраняются со временем. OpenID построен специально для этого; OAuth нет.
Можете ли вы безопасно сделать эти предположения? В случае Facebook, возможно; они кажутся документированными и поддерживаемыми вариантами использования (я не знаком с конкретным API). Но, как правило, это не поддерживаемый вариант использования OAuth.