3

В настоящее время я работаю над проектом Laravel 5.1, который включает публичный раздел и раздел администратора. Когда я сталкивался с проблемой, связанной с проблемой, я столкнулся с этим столбом managing user role log in. Где рекомендует первое сообщение.Учебное пособие по настройке нескольких приложений laravel 5.1 в одном проекте

Администратор и пользователи в том же приложении laravel - это плохая идея, потому что приложение будет делиться одной и той же информацией о сеансе и хранении. Будет множество случаев egde, которые вызовут утечку информации через любые логические «стены», которые вы создали, и вы закончите тратить слишком много времени на исправление этих кровотечений. То, что вы действительно хотите сделать, это настроить отдельные приложения для laravel для каждого: admin.project.com & project.com. Таким образом, вы получаете два отдельных сеанса и хранилище. Все, что вам нужно сделать, это убедиться, что необходимые вам базы данных установлены в обоих файлах конфигурации database.php. Вы даже можете разместить проекты BOTH на одном сервере с отдельными развертываниями, слушая разные порты. ТРАСТ МЭ это лучший способ пойти.

Может кто-нибудь объяснить подробно, как это можно сделать? Я имею в виду, как мне настроить свой проект. Я знаю, что им легко делиться одной и той же БД, и это легко сделать. Первый вопрос, как я могу получить URL-адреса admin.mysite.com в качестве раздела моего admin и www.mysite.com в качестве моего публичного раздела для моих 2 приложений. Также как настроить его в Azure как веб-приложение? Я получил свое приложение, которое я сейчас работаю над Azure (нет 5.1-гидов в Интернете, как-то его развертывал).

Так может кто-нибудь объяснить подробно, как должна выглядеть настройка проекта и как это сделать? Не удалось найти руководства для Laravel 5.1 и с тех пор, как настройка 5.1 отличается от 5 и 4. * Я не уверен, как продолжить.

+0

Лично не согласен с этим. Правильно управляемая авторизация и права доступа будут (должны) работать. В основном это то же самое, что и иерархия роли/доступа для ваших пользователей. Если вы не можете полагаться на это, чтобы работать, все приложение разбито. У меня был большой успех, используя удивительный пакет Sleeping-Owl Admin, у которого есть своя авторизация, которая касается большинства проблем, описанных http: //sleeping-owl.github.io/ –

+0

@MikeMiller Итак, как бы вы обрабатывали разные типы пользователей, используя тот же логин? переписывая путь переадресации в соответствии с типом пользователя, например, ссылка, опубликованная выше, или что вы бы порекомендовали? – DarkFeud

+0

Итак, если я понимаю, что вы хотите иметь пользователей, которые занимают как роли администратора, так и пользователя? Это невозможно было бы использовать спящим совами, поскольку пользователи-пользователи полностью разделены (разные auth, namespace и db-таблица). Вам просто нужна иерархия роли/доступа. Защитите свои маршруты и разрешите пользователям с нужными ролями обращаться к ним. попробуйте этот пакет, возможно, https://github.com/romanbican/roles. Я использовал некоторое время назад для чего-то простого и хорошо работал –

ответ

1

В вашем описании, похоже, вам нужно развернуть 2 приложения с пользовательскими доменами. Если это так, я думаю, что разворачивать ваши административные и пользовательские приложения отдельно на 2 Azure Web Apps. Это выгодно для управления, развертывания и масштабирования для каждой стороны ваших приложений. Чтобы настроить субдомены на свой сайт, вы можете обратиться к Azure Websites and wildcard domains и Mapping a custom subdomain to an Azure Web App (Website).

Если вы настаиваете на развертывании 2 приложений в одной службе Azure Web Apps, вы можете попробовать его с переписыванием URL-адресов в IIS Web.config, например.

 <rule name="RewriteRequestsAdmin" stopProcessing="true"> 
      <match url="^(.*)$" /> 
      <conditions> 
       <add input="{HTTP_HOST}" pattern="^admin\.XXXX\.com$"/> 
      </conditions> 
      <action type="Rewrite" url="AdminApp/public/index.php/{R:0}" /> 
     </rule> 
     <rule name="RewriteRequestsUser" stopProcessing="true"> 
      <match url="^(.*)$" /> 
      <conditions> 
      </conditions> 
      <action type="Rewrite" url="UserApp/public/index.php/{R:0}" /> 
     </rule> 
     </rules> 

Чтобы развернуть локальный проект Laravel на Azure Web Apps, вы можете использовать Git или FTP инструменты, пожалуйста, обратитесь к Create a PHP-MySQL web app in Azure App Service and deploy using Git. Но по умолчанию папка зависимости vendor и файлы композитора не будут развернуты на Azure с проектом, поэтому нам нужно войти в консольный сайт KUDU ваших Azure Web Apps, чтобы установить зависимости. Вы можете установить композитор на вкладке «Расширения сайта» на вашем сайте консоли KUDU, где URL должен быть https://<your_site_name>.scm.azurewebsites.net/SiteExtensions/#gallery, а затем выполнить команду composer install в корневом каталоге приложения.

Кроме того, вы можете просто использовать командлет на сайте консолей Куды, который URL должен быть https://<your-website-name>.scm.azurewebsites.net/DebugConsole, выполните следующие команды:

cd site\wwwroot 
curl -sS https://getcomposer.org/installer | php 
php composer.phar install 

Для Laravel развертывания на Azure, вы можете обратиться к ответу laravel 5.1 on windows azure web application для больше информации.