私は、Polymer Starter Kitとpolymerfireを使用して、2つの経路(「スタッフ」と「寄付」)を持つfirebaseアプリを作成しています。寄付ルートは公開されており、スタッフルートはプライベートです。私はスタッフルートを保護して、mycompany.com
で終わる電子メールを持つユーザーしかログインできないようにしたいと考えています。認証されていないユーザーは/donate
にリダイレクトされます。ポリマースターターキットの経路を保護するアプリケーション
私の最初の試みは、dom-if
テンプレートにそれらのルートへのリンクとその宣言をラップすることでした。これはユーザーにルートが表示されないようにするために機能しますが、ユーザーがログインしている場合は、アドレスバーからそのルートに移動することはできません。まず、アプリケーションのルートへのリンクをクリックする必要があります。これは混乱しています:「寄付」ページが表示されているにもかかわらず、アドレスバーに「スタッフ」と表示されることがあります。
<iron-selector selected="[[page]]" attr-for-selected="name" class="drawer-list" role="navigation">
<template is="dom-if" if="[[user]]" restamp="true">
<a name="staff" href="/staff">Staff</a>
</template>
<a name="donate" href="/donate">Donate</a>
</iron-selector>
<iron-pages
selected="[[page]]"
attr-for-selected="name"
fallback-selection="donate"
role="main">
<template is="dom-if" if="[[user]]" restamp="true">
<ksybf-staff name="staff"></ksybf-staff>
</template>
<ksybf-donate name="donate" route="[[subroute]]"></ksybf-donate>
</iron-pages>
私はまた、命令的ルートの装填を防止しようとしました:
_routePageChanged: function(page) {
if (this.user) {
this.page = page || 'donate';
} else {
this.page = 'donate';
}
},
これは、同様の結果が得られます。/staff
への最初のブラウジングは、アドレスバーが//app/staff
を示していても、ルートを「寄付」ロードします。
ルートをユーザーの視点から保護するにはどうすればよいですか?