1

認証に使用する認証を決定する方法。 (例:フォームベース認証またはトークンベース認証)。フォームベースの認証とトークンベースの認証の違い

トークンベースの認証をフォーム/セッション/クッキーベースの自動化に使用するメリットは何ですか?私は複数の記事をオンラインで読んだが、まだ不明である。

ウェブとモバイルプラットフォームのためにこれらの2つの方法を選択する方法を教えてもらえますか? ユーザー認証。

答えて

2

私が気づいていない具体的なニーズがない限り、JWTは優れています。

セッションではクッキーとクッキーが必要です。ブラウザでのみ動作します JWT:基本的にJSON形式のデータなので、別のプラットフォームで動作させることができます。

また、JWTはより安全です。永続的な認証メカニズムとしてクッキーを使用している場合、CSRF攻撃に対して脆弱になります。ハッカーが犠牲者を自分のウェブサイトに騙して何かのボタンをクリックすると、リクエストごとにクッキーが自動的に送信されるため、リクエストは犠牲者として送信されます。

JWTを使用すると、あなたのストレージに保存することができます。つまり、デスクトップの場合はlocalStorageです。 JWTはあなたからのそれぞれの要請に応じて手動で送付します。したがって、上記のシナリオは起こりません。

ハッカーがJWTをlocalStorageに変更し、さらにユーザーの種類を「ユーザー」から「管理者」に変更することはできません。それは、サーバだけが持つ秘密鍵を必要とします。 Auth0を試して、jwt.ioでテストすることができます。

これらは重要な点です。他にも利点がありますが、Google経由で簡単に見つけることができます。

+0

したがって、ストアドプロシージャから読み取られたユーザーセッションオブジェクトは、ハッカーによって何らかの形で変更できます。 – gorp88

+0

ストアドプロシージャ?あなたがlocalStorageを意味するならば、いいえ。トークンを作成/変更する唯一の方法は、サーバーに保存されている 'secret'キーがある場合です。 – lock22

1

RESTfulなapiを持つトークン・ベーと、Webアプリケーションに基づくセッション(通常はサービス・レイヤーを処理するためのAPIを構築するためSAPを除く)を使用します。

ここでの主な理由は簡単です。すべてのAPIがヘッダーまたは本文にすべて送信されます。そのようなトークンベースは、行く方法です。 MVCでは、データだけでなくビューをレンダリングしているので気にしません。

関連する問題