Я работаю над стеком MEAN, и моя голова настаивает на включении авторизации на стороне сервера для маршрутизации. Проще говоря, решение должно соответствовать потребностям в том, что пользователь не может обмануть браузер для доступа к странице, если не предусмотрен соответствующий токен доступа. У меня есть онлайн-учебник по поиску, и все предоставленное решение все равно может быть обходным путем, обманом браузера с модификацией кода.
Пример:
1) Пользователь имеет токен доступа в файлах cookie.
2) Сторона стороне клиента/сервера расшифровывает токен доступа и определяет роль пользователя
3) Роль пользователя - это возврат к логике доступности ролей.
В конце дня пользователь все равно может обмануть браузер:
1) удаление/замена логики для фрагментов кода, которые возвращают роль пользователя
2) заменив возвращаемое значение на определенную роль пользователя для доступа к нему.
Как этого можно избежать?
$routeProvider.when('/admin/index', {
controller: 'AdminIndex',
templateUrl: 'AdminIndex.html',
access: {
roles: ['Admin']
});
});
Клиент полностью находится под контролем пользователя. Вам нужно использовать токен доступа, чтобы определить, какие роли у пользователя на сервере и ограничить доступ к данным, необходимым для заполнения страниц там.
Не беспокойтесь о том, что пользователь может получить доступ к странице администратора, просто подумайте о том, чтобы позволить им получать данные, которые должны иметь только администраторы, и о принятии от них (как разрешенных) запросов к конечным точкам, которые изменяют ситуацию на сервере.