0

Angular2 使用 Route guard 来控制用户是否可以导航到或离开给定的路由,因此如果未经授权的用户尝试访问路径,路由守卫将进行保护。

聚合物 1.0 中的路由保护有其他替代方法吗?如果不是,如何实施?

4

1 回答 1

0

我不知道任何现有的实现,尽管搜索http://webcomponents.org总是一个好主意,因为它可能随时弹出。

要自己实现这一点,首先要创建某种权限管理行为(或 Polymer 2 中的 mixin 类)(可能会查询 Web 服务以获取{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>
于 2017-11-29T13:42:08.300 回答