2017-06-26 4 views
1

リッチクライアントアーキテクチャを使用したWebアプリケーションがあります。 我々はReactをクライアント側に、Java/Springをバックエンド用に使用しています。WebアプリケーションでUIを保護する必要がありますか?

ここで質問はログインページは私たちの反応プログラムの一部であるかどうかですか?私が知っているように、我々はそれを行う場合 、欠点は以下のとおりです。

  • UIが保護されていないと誰もが、でもそれらの任意のアクセスせずに、全体のUIのアプリをダウンロードすることができます。 。
  • でもアクセスせずに誰もが、中にログインする前に全体のUIアプリケーションをダウンロードする必要があります

と五分五分である:誰かがでlogeedとき

  • ページがリフレッシュする必要はありません
  • 。フロントエンド部分とバックエンド部分は、共有セッションなしで完全に分離できます。

Gmail、スラックなど、よく知られているアプリケーションでは、リッチクライアントアプリケーション(角度、反応など)はログイン直後です。最初のアプローチではアプリケーションがわかりません。

答えて

2
  1. フロントエンドは通常保護されていません。コードを制動するのを難しくする潜在的な方法がありますが、常に可能です。
  2. 1のため、重要なデータはフロントエンドに保存しないでください。
  3. SpringバックエンドからReact(あるいはAngular、VueJSなどのような)にデータを転送するための安全な方法として、おそらくJWTまたはOAuth2を使用するべきです。
  4. JWTをフロントエンドでデコードすることができます(バックエンドのみが有効なトークンであるかどうかを確認できるため、心配はありません)。管理者のみのオプションを表示します。
  5. あなたの質問に答えるにはログイン・ページがReactアプリケーションの一部になることがあります。ログイン・クレデンシャルを送ってバックエンドからJWTを取り戻すからです
  6. ユーザーがログインすると、リクエストごとにヘッダーにJWTを添付します。あなたのSpring Securityはそれをチェックし、要求を許可することができます。
+0

Gmailのような既知のウェブアプリケーションでこのアプローチが見つからないのはなぜですか? – Amir

+0

GoogleがGmailをSPAに変更したくない理由はわかりませんが、InboxがSPAだと聞いたと思います。 また、バンキングでもこのアプローチを見ることができます。これをチェックしてください:https://login.ingbank.pl/mojeing/app/#login –

+0

Googleログインは多くのGoogle Appsで共有されていますので、多くのアプリケーションで別々のエンティティを使用することに意味があります –

関連する問題