Как правильно написать API для взаимодействия с самим сайтом и для других сайтов?
задание такое:
есть сайт crm, написанный на php.
логика такая, заходит юзер и видит свои данные (проекты, таски и т.д.). писал на Slim framework и токен авторизация.
сейчас хочу написать клиентскую часть.
варианта два, написать отдельную систему базирующуюся на AJAX запросах. в принципе все просто, отдельно фронт отдельно бек.
crm.site.com фронт на html и js обвернут php для хранения сессий. каждый раз происходит авторизация, при каждом запросе.
api.site.com бек на php и выдает json.
но что то мне кажется что лучше сделать все иначе.
чтоб crm обращался напрямую к api и запоминал сессию, а если внешний ресурс то нужна авторизация.
как можно легче такое реализовать?
не хочу писать клиентскую часть на шаблонах php, так как если проект наберет силу может придется в будущем перестраиваться на другой язык программирования (клиентская задача) и на базы амазона.
да и зависимость от языка на клиенте не совсем хорошая идея.
storage html5 тоже не вариант, т.к. авторизация все равно требуется постоянно.
А с чего вы взяли что нужна постоянная авторизация. Вы ее делаете 1 раз, получаете token и потом во все ajax запросы отправляете его. Это по сути та же сессия, только сервер не должен помнить состояние пользователя — например есть анкета из 2 шагов, frontend должен сразу ответы на 2 страницы присылать, а не отправлять 1 страницу, а потом 2-ю.
смысл понятен.
превратить crm.site.com в еще один клиент который дает запросы на API а на стороне api.site.com сделать токен структуру при первой авторизации и при последующих key-value проверки?
не знаком с редисом, но вопрос такой а если одновременно обращаются два ресурса с одним user_id?
на данный момент токен генерируется oAuth2.0, вся проверка идет через него.
пароль проверяю через curl чтоб не видели пароль. а потом все чкрез oAuth. https://github.com/bshaffer/oauth2-server-php