JQuery ウィジェット(特にJQGrid )を Rails 3 アプリケーションで使用しようとしています。私は ruby-openid を使用して Google で認証を行い、Seth Ladd の素晴らしいレシピを使用してそれを機能させました。
それは何をしますか-ウェブフォームからのページビューと投稿。
ただし、JQGrid がサーバー上のデータを更新するために POST を実行すると、次の 2 つのことが発生します。
ユーザーのブラウザーが Google へのログインによって既に認証されている場合でも、POST は認証されていないブラウザーから送信されたかのようにサーバーに表示され、OpenID 認証ダンスにリダイレクトされます。それはそれを除いてショーストッパーではありません
サーバーがリダイレクトと認証を開始するはずの 401 を返すとすぐに、エンチラーダ全体が停止します。通常 (たとえば、フォーム送信からの POST 要求のように)、ブラウザーは 401 を認識し、同封の「ここで認証」情報を読み取り、ダンスを行い、セッションがセットアップされて戻ってきて、サイクルが続きます。しかし、JQuery/JQGrid からは...それほど多くはありません。
何か案は?ここで明らかな何かが欠けていると確信していますが、ラムズフェルドの「未知の未知」の 1 つが進行中です。何が欠けているのか、ましてやそれを修正する方法がわかりません! これは長い間解決されてきた問題のようですね。
私は XSS 防御に違反している可能性がありますが、もしそうなら、* *- OpenID ですでに行った深刻な投資 (既にサインアップしているユーザーとパスワードを提供/記憶する必要があるユーザーを含む) を無効にする以外の方法がわかりません。 - くそっ!)。
事前に感謝します、私の専門家の同僚。
(Rails 3.0.7、ruby-openid 2.1.8、JQGrid 3.5.3、JQuery 1.3.2、Google を OP として使用するため、ユーザーは ID URL を入力する必要がありません。)