2015-07-31 2 views
2

В настоящее время Laravel перенаправляет пользователя на другой URL-адрес, если он не вошел в систему (например, /auth/login). /auth/login содержит логику, чтобы проверить, предоставил ли пользователь учетные данные для входа, и в этом случае они перенаправляются на другую страницу (например, /home).Как мне Laravel отправить форму входа, когда пользователь не аутентифицирован, а не перенаправляется на страницу входа?

(Является ли это правильно? Я все еще учусь.)

Я хотел бы изменить эту функциональность. В идеале, когда пользователь посещает / или /index.php, Laravel обнаруживает, что он не вошел в систему и возвратил другое представление (форма входа) и не перенаправление. Пользователь будет видеть /#/users в навигационной панели, а не /auth/login. Форма входа будет отправлена ​​на ту же страницу.

Теперь, когда Laravel обнаруживает, что пользователь не вошел в систему, но Auth::check() работает, он войдет в систему и продолжит исходный вид.

Причина, по которой я хотел бы сделать это, заключается в том, что Навигация по угловому виду все еще работает. Из-за перенаправления #param (/#/users) потерян, и мы можем перенаправить пользователя только на панель управления.

Возможно ли это Laravel? Я был бы доволен тем, что все текущие функции скрыты, поэтому я могу начать там.

+0

Не парень laravel, и я не знаю. Но в идеале, что бы вы хотели сделать, это проверить, зарегистрирован ли пользователь на отдельном контроллере/действии, и если не отобразить вид формы входа в систему. http://laravel.com/docs/4.2/responses – Ray

+1

@Ray Вам нужно проверить промежуточное программное обеспечение, и вы решите, будет ли промежуточное ПО глобальным или какие действия маршрутов/контроллеров повлияют. – user2094178

+0

Справа. Просто давая пользователю исходные базы. Я ничего не знаю о laravel/symfony или его модели обслуживания/зависимости. – Ray

ответ

0

Laravel перенаправляет пользователя на auth/login, а затем после аутентификации перенаправляет его обратно в исходное представление.

Один из способов предотвратить это - использовать Laravel в качестве ресурса API, а ваше приложение Angular app контролирует пользовательский интерфейс и действия.

Например, если пользователь приземлится в '/', ваше приложение Angular соберет все необходимые данные из вашего Laravel API через вызовы ajax. Первый вызов ajax состоял бы в проверке подлинности пользователя, а если нет, используйте Angular для отображения модальной формы с формой входа. Затем используйте форму для аутентификации пользователя через API Laravel.

Таким образом, ваш URL и текущий вид не изменятся, и вы получите полный контроль над своим угловым приложением.

Просто идея ... надеюсь, что это поможет.

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