2017-06-26 15 views
0

私はreactを使用してウェブサイトを構築しており、管理者と通常のユーザーの2つのクラスがあります。Reactjsのウェブサイトと管理者

私はリアクションアプリケーションをデプロイするときに、完全なアプリケーションを顧客のブラウザに送ります。この方法で、私はウェブサイトの管理部分を誰にも公開しています(JavaScriptの検査方法は分かっています)。

ウェブサイトの管理部分が通常のユーザーに公開されないようにする方法はありますか?

「サーバーサイドレンダリング」を使用して問題のあるコンポーネントを出荷することもできますが、ブラウザで動作するためにこれらのコンポーネントもクライアントにロードする必要があります。これはユニバーサルjavascriptとも呼ばれ、クライアントに再び表示されます。

+0

サーバー側のソリューションはどうでしょうか?アクションを送信するためにユーザーセッションIDまたは別の一意のユーザーの値を受け取るだけですか? –

答えて

1

通常、開発者はバックエンドでユーザーロールアクセスを実装しているため、フロントエンドで特別な保護は必要ありません。フロントエンドでユーザーの役割を保護することにも深く関心がある場合は、ユーザーの役割ごとに2つの別々のフロントエンドアプリケーションを開発することを検討する必要があります。

1

フロントエンドをすべてのユーザーが使用できるように構築する必要があります。たとえば、将来cdn経由でリソースを提供したい場合などです。サーバー側はアクセス違反を処理する必要があります。だから、あなたの普通のユーザーは、安心して管理データ(エンティティなど)にアクセスすることはできません。

ensure(この例はwebpack固有のものです)トラフィックの量を減らすために、管理者静的リソースを通常のユーザに配信しないようにしたい場合は、私は私のプロジェクトで使用した例を以下に添付しました。

require.ensure([], (require) => { 
    /* Webpack - use require callback to define 
     dependencies for bundling */ 
    const Provider = require('./view/ProviderView').default; 
    const reducer = require('./modules/provider').default; 

    /* Add the reducer to the store on key 'provider' */ 
    injectReducer(store, { key: 'provider', reducer }); 

    /* Return getComponent */ 
    cb(null, Provider); 

/* Webpack named bundle */ 
}, 'provider'); 
1

現在のプロジェクトでは、認証されていないルートのインデックスとしてIndex.ejsを、認証されたユーザーのインデックスとしてAuth.ejsを使用しています。

どのように認証を処理していますか?

関連する問題