2015-09-25 4 views
4

ОК - позвольте мне начать с того, что это будет похоже на вопрос типа «рука-вниз». Я опытный разработчик CakePHP и полный новичок в Angular.Угловая - интеграция с CakePHP

У меня включен бэкэнд REST, написанный на CakePHP v3. Теперь я ищу, чтобы создать фронт-конец, разрешенный Angular для этого же. Веб-приложение имеет около 25 контроллеров на бэкэнд около 50 таблиц - так что это довольно сложное приложение.

Вопросы

  1. Я понимаю, Угловое реально не поддерживать состояние между страницами или запросами. А для бэкэнд-приложения действительно «RESTful» он также не должен полагаться на состояние, но аутентифицировать каждый запрос/действие - как это сделать? Как только пользователь входит в систему - как мне создать токен, который затем обменивается между Angular и CakePHP для каждого запроса?

  2. Когда пользователь перемещается между разными страницами в интерфейсе, как мне отслеживать его и поддерживать доступ к проверке подлинности в Угловом?

Опять же - если эти вопросы кажутся как ручное меня падения, но примеры и документация действительно мало для интеграции Углового с CakePHP. Я надеюсь, что в конечном итоге я смогу создать некоторую базу знаний.

ответ

2

На самом деле можно использовать углы для приложений, которые не соответствуют одностраничному подходу. Вы можете использовать директивы и контроллеры непосредственно внутри HTML каждой страницы.

Аутентификация не является проблемой в этом случае, поскольку сервер знает, кто вы основаны на сеансе, он должен присутствовать. На самом деле это то, что мы делаем в устаревшем приложении, которое может стать SPA в далеком будущем.

Если вам нужна аутентификация между запросами, я бы рекомендовал использовать токены JWT. Существует даже плагин для CakePHP, который реализует правильный аутентификационный адаптер для JWT: https://github.com/ADmad/cakephp-jwt-auth Я даже написал статью по этой теме: http://florian-kraemer.net/2014/07/cakephp-and-token-based-auth-with-angular-js/

+0

мог бы сказать мне, какую выгоду мы должны использовать AngularJS с CakePHP? – 2ndGAB

0

Я не знаком с тортом, но вы, похоже, не учитываете угловой подход к созданию приложений. Angular ожидает одностраничное приложение. Существует только одна страница. Поэтому, когда вы говорите «страницы или запросы», вы действительно имеете в виду две разные вещи. Угловая система выдаст много запросов на создание одной «страницы». С точки зрения пользователя, это может выглядеть как много страниц, но угловой обычно зависит от одного файла index.html.

Что касается проверки подлинности, снова я не уверен, что ожидает Cake, но, как правило, вы просто отправляете токен аутентификации в качестве файла cookie или в свой http-заголовок (в зависимости от типа используемого вами авторизатора). Угловое состояние будет поддерживать свое состояние в течение всего времени, когда страница открыта и, как правило, сохраняет токен аутентификации.

+0

Позвольте мне привести пример - традиционным способом создания приложений с помощью Cake, у меня есть контроллеров, основанных на определенных условиях. Например, у меня есть CarController, а затем DealerController, а затем CustomerController. Поэтому, если я собираюсь добавлять, редактировать, удалять, просматривать автомобили, тогда у меня будет 4 разных страницы для каждого из них, и все они будут управляться CarController. Точно так же для клиентов, дилеров и т. Д. Я понимаю, что все 4 действия (добавить, отредактировать, удалить, просмотреть) будут одной страницей в Angular, но если я хочу переехать из Car to Customer, мне бы технически нужно перейти на другую страницу справа ? – ChicagoSky

+1

Некоторые [примерный пример входа с угловым + CakePHP] (https://medium.com/@ranostaj/login-with-cakephp3-and-angularjs-b4b124708086) –

Смежные вопросы