0

現在、私の認証フローは次のとおりです。

  1. ユーザーはクライアント ブラウザー アプリ (正確には AngularJS) でログイン フォームに入力し、ユーザー名とパスワードはブラウザーのメモリ (プレーンな Javascript 変数) に保存されます。

  2. 保護された API リソースにアクセスする場合、要求は、メモリに保存されている資格情報を使用して SSL 経由の HTTP 基本認証で認証されます。

問題は、ユーザーがページを更新すると、資格情報が消去され、再度サインインする必要があることです。ここで明らかな何かが欠けていますか?

これまでに見つけたいくつかの解決策:

  1. ユーザー名とパスワードを Cookie に保存する: 安全な Cookie や暗号化を使用している場合でも、これは明らかに安全ではないようです。

  2. セッション Cookie を使用します。これは、RESTful なステートレスの原則に反しているようです。

(OAuth には、アクセス トークンをクライアントに安全に保存するという同じ問題があると思いますか?)

4

2 に答える 2

0

ここでは、セッション Cookie はまったく問題ありません。インストールしたら、それらを気にしないでください。ブラウザは、ヘッダーを介して各リクエストでそれらを送信します。

于 2013-07-04T10:19:54.390 に答える
0

この回答に触発されて、私はこのようなことをしました(リンクはかなり大きな画像を開きます)。

つまり、クライアントはアクセス トークンを JavaScript 変数に格納しますが、リフレッシュ トークンはサーバー側のセッション (API サーバーではなく、クライアント アプリをホストするサーバー) に格納されます。

于 2013-07-12T15:04:03.840 に答える