В настоящее время я создаю свой собственный REST API. API предоставляет данные, которые не должны быть доступны для всех, поэтому я думал об обеспечении его приложением Token, которое вы должны отправлять при выполнении API-вызовов.Аутентификация API REST | AppID + AppSecret
Сначала я подумал об использовании OAuth2, но я только нашел, как использовать его так, как он используется, например. API Facebook (всплывающее окно, запрашивающее разрешение пользователя .....).
Это не то, что я хочу, поэтому я разработал свой собственный механизм auth. У меня есть список «приложений», которым разрешено использовать API. У каждого приложения есть AppID, чтобы идентифицировать его и AppSecret. Теперь аутентификации работает следующим образом:
- Клиент называет
/auth/requestToken?auth_appId=[AppID]
- Если AppID действует клиент получает обратно
requestToken
- Теперь клиент добавляет
AppSecret
кrequestToken
и хэши Результирующая строка - Клиентские вызовы
/auth/accessToken?auth_requestToken=[requestToken]&auth_requestAccessToken=[hash]
- Если
hash
действителен для отправкиrequestToken
API возвращаетaccessToken
, действительный 2 часа - API вызовы могут быть сделаны путем добавления
accessToken
в качестве параметра GET
Теперь мои вопросы:
- Есть ли что-то вроде стандарта для аутентификации клиента, как это?
- Есть ли лучший способ сделать это?
- Любые улучшения, которые вы предлагаете?
Мой API просто разбирает HTML страницы и предоставляет контент через более дружественный пользовательский интерфейс JSon. Нет пользователей. У меня только клиентские приложения (iOS, Android, WP, возможно, WebApp), которые отображают данные. Для приложения я должен использовать другую систему авторизации, потому что клиент хочет интегрироваться в свою существующую систему. Так что все дело в том, чтобы конечные точки API обрабатывали только запросы из моих приложений :) – iMoritz