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>
Другие вопросы по тегам