1

私は現在流星アプリケーションを書いており、新しい Iron Router パッケージに慣れつつあります (以前使用していたルーター パッケージとは対照的です)。

特定のプロパティを持つユーザーのみがアクセスできるルートのコレクションがあります。具体的には、Roles パッケージを使用しています。現時点でこれを実現する方法は、条件を実行する before 関数を定義し、ユーザーが適切な役割を持っていない場合にログイン ページまたはエラー ページにリダイレクトすることです。簡単な (coffeescript) 例を次に示します。

this.route 'home',
    path: '/' 
    template: 'dashboard'
    before: ->
      unless Meteor.userId()
        this.redirect 'userUnauthorized'
        do this.stop

私の質問は、これを行うためのより良い方法はありますか? ルートごとにアクセス条件を記述するのではなく、アクセス許可セットを追加し、そのアクセス許可セットをルートに適用する方法があるはずです。

4

1 に答える 1

1

ルートにグローバルな「前」を設定できます。現在のアプリではロールを使用していませんが、サインインしているかどうかに基づいてユーザーをグローバルにリダイレクトしています。

おそらく次のようなことができます。

Router.before(function() {
  unless(Meteor.userId()) {
    this.redirect('userUnauthorized');
    do (this.stop)
  }
}, {except: ['userUnauthorized', 'otherPageUnauthorizedUsersAllowedToSee']});

私たちは私たちのすぐ下に似たものを使用しますRouter.configure()

于 2013-11-14T18:40:07.713 に答える