2015-12-03 14 views
0

Я создаю приложение на основе API, которое использует Laravel в качестве backend и AngularJS для интерфейсного.Используйте ключ API между angularJS и Laravel

Аутентификация пользователя между интерфейсом и API относительно проста, используя веб-токены JSON (JWT). This tutorial был особенно полезен

Но большая часть моего приложения переднего конца не аутентифицирована пользователем, его просто нужно защитить ключом API.

Я хотел бы продолжить использование JWT-подхода, если это возможно, но я не могу найти ни одного пакета или руководства для обеспечения интерфейсного приложения с помощью простого ключа API (без начального входа пользователя). Я не хочу заново изобретать колесо, должны существовать существующие решения для этой общей проблемы.

Есть ли у кого-нибудь какие-либо гарантии безопасности и основанный на API наклонный конец AngularJS для использования с пользовательским API? Существуют ли какие-либо пакеты, которые существуют для этого?

Примечание: Я исследовал Auth0, который является большим, но есть несколько проблем (стоимость, отсутствие бесплатной поддержки для настраиваемого пользователя БД, без встроенной поддержки для простого API-ключа)

Спасибо

+0

Не могу поверить, что это не распространенная проблема! Разумеется, каждый сайт, основанный на API, должен включать в себя ключ API и пользовательскую систему auth? Что мне здесь не хватает ... – Leon

ответ

0

Лучший способ, с которым я могу думать, это создать нового пользователя Laravel для вашего углового сайта.

Вам также понадобится прокси-скрипт, который содержит учетные данные пользователя сайта. Он достиг бы Laravel с этими учетными данными и вернул JWT. Затем вы просто вызываете этот прокси-скрипт из Angular, чтобы получить свой токен. Цель прокси-скрипта - хороший способ скрыть эти учетные данные от пользователей.

Таким образом, вам не нужно ничего менять в своем API, поскольку это действительно просто новый пользователь, обращающийся к сайту. Если или когда пользователь должен поднять свои учетные данные, выполнив вход как сам, вы также можете продолжить использовать прокси-скрипт, а заменить эти учетные данные по умолчанию учетными данными пользователя, прежде чем захватить JWT из Laravel.

+0

спасибо! Что происходит, когда пользователь хочет войти в систему как самостоятельно? Они должны будут автоматически выходить из поддельного пользователя и снова войти в систему, я полагаю ... кажется сложным:/ – Leon

+0

Вам не нужно никого изводить. Вы просто отправляете собственные учетные данные пользователя вместо учетных данных сайта через прокси-скрипт, и он возвращает новый JWT в Angular. Что касается вашего API, то нет логинов или сеансов. Он просто получает и предоставляет привилегии на основе получаемого ими жетона. – user3158900