0

できるだけ純粋な REST アプローチを維持しようとして、最後の部分までアプリケーションAPI になると判断しました。

残念ながら、私は 1 つのつまずきに達しました。PHP でダイジェスト認証ハンドラーを作成した後、フォームベースの認証方法ほど Web ブラウザーのユーザーにとって使いやすいエクスペリエンスを作成できないことに気付きました。

この理由は、HTML フォームからユーザー名とパスワードを使用して Javascript を介してダイジェスト認証応答をシミュレートできたとしても (nonce生成方法により、スクリプトに安全に値を与えることができます)、失敗すると、ブラウザには、標準の醜い認証プロンプトが引き続き表示されます。

これを回避する方法はありますか?以前の質問は を参照していますmozBackgroundRequestが、それはクロスブラウザーとは思えません。

ありがとう!

4

1 に答える 1

0

提供された認証の詳細が機能することを確認するために、最初に AJAX で要求を行うことができます。

もしそうなら、あなたがしてきたことをしてください。そうでない場合は、独自のより良い方法でユーザーに伝えてください...

編集

PHP で認証ルーチンを制御している場合 (認証が失敗した場合、おそらくheader('HTTP/1.1 401 Unauthorized');その他のことを行っている場合) は... できません。代わりに、通常の 200 OK で応答しますが、検索できる文字列を本文に入れますajax.responseText(「authFailed」など)。

通常のブラウザー リクエストには存在しないヘッダー (または Cookie など) を AJAX リクエストに追加するだけで、AJAX 認証チェックと通常の認証済みセッションを区別できるようになります。

正確なメカニズムは、現時点では頭の中で少しぼやけていますが (長い 1 日でした)、その方法を使用して実行できると確信しています。

于 2011-08-18T10:19:21.743 に答える