1 つのオプションは、ユーザーが管理者グループに属している場合にのみルートをセットアップすることです。
var router = new appRouter();
if (user.group === 'admin') {
router.route('foo/:id/edit','edit',function {
// your admin route logic here.
});
// or define the function in your router and reference it
// such as: router.route('foo/:id/edit','edit',router.edit);
}
Backbone.history.start();
ルートがたくさんある場合は、次のような管理ルートを含むオブジェクトを作成できます: (ただし、ルート名のプロパティを追加したい場合があります)
var adminRoutes = {
'foo/:id/edit':function() {
// your logic here
},
'another/route': // same set-up as above
...
};
if
次に、ループを使用して条件に設定します。
for (var k in adminRoutes)
router.route(k,k,adminRoutes[k]);
とにかく、この方法にはいくつかの異なる設定オプションがあります。
このアプローチの利点は、ユーザーが移動する各ルートでルートとユーザーのアクセス許可を確認する必要がないことです。ルートが設定されているか、設定されていないかのどちらかです。
ユーザーが管理者権限にアップグレードできる場合は、ルート設定ロジックを関数にラップし、ユーザーに管理者アクセス権が付与されたときにそれを呼び出します。
これらすべてを除けば、私の知る限り、フロントエンドに安全な認証システムをセットアップすることはできません。決定するアプローチに関係なく、サーバー側のアクセス許可も確認する必要があります。