Ответ 1
У меня тоже был этот вопрос некоторое время, у меня также есть вопрос без ответа относительно этой самой темы (здесь так).
В основном ваши варианты - это OAuth или что-то обычное.
Теперь, для oauth, они работают над версией 2.0, и вы не должны запускать новый проект с использованием OAuth 1, но дело в том, что oauth2 еще далек от завершения, и небольшая поддержка сервера oauth2 для php прямо сейчас. Я не хочу говорить, что oauth2 2-legged/3-legged сложный, но это больше, чем нужно, а также после прочтения многих сообщений об этом, я решил, что на данный момент я должен пойти с чем-то еще, а не oauth (также один из создателей oauth покинул проект, потому что он был недоволен направлением этого проекта), потому что он находится в "неопределенном" состоянии (конечно, люди будут утверждать, что в значительной степени готовы к использованию, но мне все равно, я хочу, чтобы что-то уже было доказано, не хочу быть лабораторной крысой для огромных компаний, чтобы проверить oauth [да, oauth касается огромных интересов компаний, а не ваших]).
В любом случае, возвращаясь к моей проблеме, мне всегда нравилось, как Amazon работает с их api, это так просто реализовать, так почему бы не пойти в одном направлении? Я имею в виду, что Amazon является одним из крупнейших провайдеров api, если они его используют, у них есть настоящая причина для этого.
Сказано и сделано, менее чем за 2 часа у меня был протокол проверки подлинности/авторизации, и угадайте, что это было легко, просто и мне нравится писать (не разочаровываться из-за oauth).
Хорошей статьей, которая помогла мне начать, было следующее: http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/, который в основном показывает, что вы должны делать.
Итак, если бы я был вами, я бы начал оттуда:)