2017-05-09 13 views
0

JSON Webトークンの設定方法と、クライアント側で認証ロジックを実装しているすべての例(例:generator-angular-fullstack)を読んでいます。JWTによる認証:サーバーまたはクライアント側?

例として、ユーザーがルートアドレスに行くだけでパーソナルダッシュボードにアクセスできるアプリを想像してみましょう。認証されていない場合、ユーザーはログインページまたはリンク先ページにリダイレクトする必要があります。 Angularアプリ全体をダウンロードし、認証とルーティングを処理し、必要に応じてログインページにリダイレクトします。

ほとんどの訪問者がアカウントを持っていないと仮定すると、なぜそれらのコードをすべてダウンロードして最終的にロギングページを表示させるのでしょうか?

単に、すでに有効なトークンを持っているユーザーに非認証されたユーザーと角アプリケーションに軽量のログインページにサービスを提供する方が良いと思いませんか? もしそうなら、そのように実装されたサンプルがどうして見つかりませんか?

答えて

0

あなたは、フロントエンド・アプリケーションでトークンベース認証の問題の一つに直面している:クライアントからサーバへの最初の要求では、ログイン状態では、サーバーに不明です。

Angularアプリケーションのではなく、の部分は、クッキーが最初のリクエストで配信されるため、Cookie /セッションベースの認証の一般的な使用例です。このようにして、サーバは角型アプリケーションを提供するか、またはログインフォームにリダイレクトするかを知る。

あなたのログインフォームが角形アプリケーションの一部である場合、アプリケーション全体を処理する際に問題はありません。ログイン後(ユーザー名+パスワードをサーバーに送信する)、それ以降のすべての要求に使用するトークンを取得します。古典的な単一ページアプリケーションでは、追加のリロードは含まれません。

+0

しかしJWTはクッキーとして保存することができます(上記の例で実装されているように)。最初のリクエストでJWTを送信することができるので、サーバーはそのクライアントが認証されているかどうかを知ることができます。実際には、アプリが読み込まれて認証されると、それが完全にリフレッシュされるのとどのように違うのか分かりません。そのトークンを送信するためにAngularに頼る必要はありません。実用性については、アカウントを持たない1回限りの訪問者がかなりいるとします。細いランディングページを配信すると、読み込み時間が短縮され、帯域幅が節約されます。それとも私は何かを誤解しましたか? – Funkatic

関連する問題