8

主に iOS 開発者として、私は webdev に非常に慣れていません。私は Meteor を調べていて、ルーティングに関していくつか質問があります。非常に簡単でしたら申し訳ありません。

Meteor Router パッケージを使用してルートを作成していますが、いくつかのページに管理者ユーザーのみがアクセスできるようにしたいと考えています。

  Meteor.Router.add({
        '/'         : 'home',
        '/admin'    : 'admin'
    });

上記のように簡単なルートを設定しましたが、 /admin ルートへのアクセスを制限する方法がわかりません。

このようなものと同じくらい簡単ですか?/admin ページへのルートを制限し、警告を表示したり、/ ページにリダイレクトしたりする良い方法は何でしょうか?

ありがとうございました!

client.html

<head>
   <title>My App</title>
</head>

<body>
   {{renderPage}}
</body>

<template name="home">
    {{greeting}}
</template>

<template name="admin">
    {{greeting}}
</template>

client.js

Template.admin.greeting = function () {
   var currentUser = Meteor.user();
   if (null !== currentUser && 'admin' === currentUser.username) {
       return "Hello Admin!";
   }
   else{
      return "Sorry, only admins can see this page";
   }
};
4

4 に答える 4

2

別の解決策は、役割パッケージを使用し、データを提供する前にユーザーが「管理者」役割を持っていることを確認することです。

$ mrt add roles

次に、素敵な構文のようなロールを確認できます。

if(!Roles.userIsInRole(Meteor.user(), ['admin'])) {
    // Redirect...
}

Roles は Meteor アカウント システムと統合されており、ほとんどのアカウント パッケージとうまく連携します。

アカウントの管理 (ロールの作成/削除、特定のユーザーからのロールの追加/削除) を検討している場合は、パッケージAccounts Admin UIを作成しました。README には、クイックスタートと、これを他のルーティング パッケージと統合する方法に関するいくつかの注意事項があります。

$ mrt add accounts-admin-ui-bootstrap-3
于 2014-02-13T20:40:16.813 に答える