У меня есть приложение с угловыми одностраничными страницами, в котором пользователи могут создавать список вакансий. Я хочу контролировать, может ли пользователь редактировать список заданий. Есть две роли, которые могут редактировать список заданий. Аутентифицированный пользователь, который может редактировать свой список вакансий или администратор, который может редактировать все списки вакансий.
Сервер будет проверять, имеет ли пользователь доступ к этим действиям. Это не проблема. Тем не менее, перед изменением состояния в клиентском приложении, я хочу сделать запрос на сервер, чтобы проверить, имеет ли текущий зарегистрированный пользователь разрешение. Таким образом, запрос будет проверять, может ли пользователь редактировать список заданий С#id 9de88893, например.
Как выглядит этот маршрут. Он возвращает только истину или ложь? Я даже не представляю, как это выглядит и как это будет работать. Есть идеи?
Я сделал угловой проект запуска 1.5.x вы можете посмотреть на этой (строке 140).
Чтобы идентифицировать пользователя, вам нужно будет отправить токен с каждым запросом от клиента (Угловое).
Сервер проверяет токен и анализирует его (теперь зная, что пользователь запрашивает для изменения ресурса), затем решает курс действия в соответствии с этим пользователем (поскольку токен зашифрован с помощью секретности сервера).
Проверка доступа должна быть на стороне сервера, иначе она НЕ защищена!
Во всяком случае, и, как сказал Мули выше, аутентификация должна производиться на стороне сервера. По соображениям безопасности.
Вот учебник, который поможет вам в создании системы аутентификации маркера, которая работает с угловым.
Хорошо, поэтому, если я правильно понял, вы обеспокоены тем, что кто-то может заставить ваш фронт... Ну, говно случается человек. Именно поэтому вы ДОЛЖНЫ всегда проверять на стороне сервера каждый запрос. В качестве примера у меня есть веб-приложение, основанное на Angular и Laravel (как спокойное обслуживание). Все, я имею в виду ALL, ранее запрашиваются запросы, если пользователь действителен, прежде чем принимать, изменять или создавать какую-либо строку в БД.
В вашем случае я буду использовать роли пользователей на угловой стороне и проверять каждый запрос на стороне сервера. Вы можете сделать функцию, которая проверяет, зарегистрирован ли пользователь, и дать ему флаг для проверки прав пользователя. Если у вас нет доступа к этому запросу, отправьте ответ состояния 403 и затем покажите любое предупреждение, которое вы хотите на угловой стороне. Таким образом, с помощью управления пользователями и состояниями пользователей вы можете запретить пользователям совершать посадку на странице x. И на стороне сервера предотвратите любые принудительные попытки.
Front-end легко взломать, это факт. Вот почему мы все время проверяем на стороне сервера.