これは、単純な 1 回限りの質問ではなく、パターンとディスカッションの要求です。ユーザーがさまざまな役割の一部になることができるバックボーン アプリがあります。ルートは通常どおり定義されます。
routes:
"": "showHomePage"
"import": "showImportPage"
import
特定のユーザー ロールのみがページにアクセスできるようにしたいと考えています。私は次のようなことができると思います:
showImportPage: ->
if not MyApp.CurrentUser.can_import
return
これは実際に機能します。もちろん、ご想像のとおり、これは Chrome コンソールを使用するだけで簡単に悪用されます。リンクをどこにも表示しなくても、アドレス バーに移動して入力するだけで非常に簡単です。
上記は通常のユーザーを停止するのに十分なはずですが、私の質問は、そのルートがアクセスされないようにするにはどうすればよいですか?
私が今まで持っている唯一の方法は、特別な URL をチェックするか、アクセスする前に User モデルを再取得することによって、そのルートを提供する前にサーバーを参照することです...私はこの問題を抱えていますが、すべてのURLがサーバーによって認証される必要があり、ユーザーがナビゲートできるようにする前に通常のajaxスピナーを表示する必要がある場合、これは基本的に「シングルページアプリ」の背後にあるアイデア全体の目的を無効にします...私は知っています行き来するデータの量は最小限 (json ユーザー情報のみ、またはそれ以下) ですが、それでも...
この問題に直面したことがある場合、あなたの意見や解決策は何ですか?