0

私はMEAN スタックを使用していますが、次の疑問があります。

現在、Chrome 用の angularjs プラグインを調べると、ログイン後、グローバル スコープでユーザー情報が次のように表示されます。

user: { 
    provider: local
    name: Usertest
    email: usertest@usertest.com
    username: User
    _id: 52f94e49088c92d972163f64
    __v: 0
    role: special_member
} 

ご覧のとおり、フィールドroleをユーザー スキーマに追加しました。

私の質問は、たとえば、パスワードが表示されないのに、なぜ新しい役割フィールドがフロントエンドに表示されるのですか? (表示されることが期待されていないことは理解していますが、どのファイルまたはどこで、一部のフィールドを角度管理されたフロントエンドに渡してはならないことが明示されていますか?)

4

1 に答える 1

0

ユーザーはapp/views/index.htmlで Angular に転送されます。

<script type="text/javascript">
    window.user = {{user|safe}};
</script>

app/controllers/index.js{{ user|safe }}テンプレートに渡されます。

res.render('index', {
    user: req.user ? JSON.stringify(req.user) : 'null'
});

ここでユーザーをインターセプトして、特定の値のみを渡すことができます。

user: req.user ? JSON.stringify({ username: req.user.username, _id: req.user._id }) : 'null'
于 2014-02-12T19:28:38.723 に答える