Polymer 1.0: управление доступом к или из маршрута
Angular2 использует Route guard. Чтобы контролировать, может ли пользователь перемещаться к данному маршруту или от него, поэтому если неавторизованный пользователь попытается получить доступ к маршруту, защита будет защищена.
Есть ли альтернативный способ для охраны маршрута в полимере 1.0? если нет, то как это можно реализовать?
1 ответ
Я не знаю ни о какой существующей реализации, хотя всегда полезно искать на http://webcomponents.org/, так как он может появиться там в любую секунду.
Чтобы реализовать это самостоятельно, начните с создания некоторого поведения управления правами (или смешанного класса в Polymer 2) (которое может запрашивать у веб-службы карту {right1: Array<User>, ...}
; но не забывайте про кеширование и прочее...) у которого есть метод checkRight(rightName, user)
, Затем вы можете смешать это поведение / класс с потребляющими элементами и связать метод checkRight
к любому элементу, который вы хотите охранять, например, ребенок железных страниц hidden
атрибута по:
<dom-module id="my-app">
<template>
<iron-pages ...>
<my-page-1 hidden$="[[checkRight('right1', currentUser)]]"></my-page-1>
<my-page-2 hidden$="[[checkRight('right2', currentUser)]]"></my-page-2>
...
</iron-pages>
</template>
<script>
Polymer({
is: 'my-app',
properties: {
currentUser: {...}
},
behaviors: [My.RightsManagedBehavior]
});
</script>
</dom-module>