我正在尝试将 Mozilla Persona (browserid) 集成到 Pyramid 应用程序中。登录流程为:
- 用户可以通过单击登录按钮登录任何页面
- 然后弹出一个显示登录表单
- 当用户输入正确的登录名/密码时,弹出窗口对 Pyramid 视图进行 ajax 调用,该视图检查用户凭据,如果检查成功,则调用 Pyramid 记住函数
- browserid javascript代码然后重新加载当前页面
现在我想处理一个新用户订阅 Web 应用程序的情况,并呈现一个新视图,要求提供更多详细信息(所需的用户名等)。
由于“记住”函数是由弹出窗口中的 ajax 调用调用的,因此我无法将用户重定向到“/newuser”页面。因此,每当记住的 browserid 在数据库中没有对应的用户时,每个视图都需要将新用户重定向到“/newuser” url。
有没有办法在调用视图来调用“new_user”视图之前拦截用户请求?或者也许我的身份验证方法根本不正确,我应该依赖另一种方法?