Mozilla Persona(browserid)をPyramidアプリケーションに統合しようとしています。ログインプロセスは次のとおりです。
- ユーザーはログインボタンをクリックして任意のページにログインできます
- 次に、ポップアップにログインフォームが表示されます
- ユーザーが正しいログイン/パスワードを入力すると、ユーザーの資格情報をチェックするPyramidビューへのポップアップによってajax呼び出しが行われ、チェックが成功した場合はPyramid記憶機能が呼び出されます。
- その後、browseridjavascriptコードは現在のページをリロードします
ここで、新しいユーザーがWebアプリをサブスクライブする場合を処理し、いくつかの詳細(必要なユーザー名など)を要求する新しいビューを表示したいと思います。
「remember」関数はポップアップからのajax呼び出しによって呼び出されるため、ユーザーを「/newuser」ページにリダイレクトできません。したがって、記憶されているbrowseridに対応するユーザーがデータベースにない場合は常に、すべてのビューで新しいユーザーを「/newuser」URLにリダイレクトする必要があります。
ビューを呼び出して代わりに「new_user」ビューを呼び出す前に、ユーザー要求をインターセプトする方法はありますか?または、私の認証アプローチが根本的に正しくなく、別のアプローチに頼るべきでしょうか?