我正在尝试使用基于 SingleStepAuthAdapter 应用程序示例的 Worklight customSecurityTest 开发自定义登录表单。
基本上,我注意到 SingleStepAuthAdapater 中使用的登录函数总是在该用户尝试访问安全函数后被调用(之后,在登录操作时,安全数据被发送给用户),但是如果我尝试调用submitAuthentication 功能直接,在任何尝试访问安全功能之前(我已经用“获取安全数据”页面反转了“登录页面”),我在萤火虫上得到了以下错误/lo:
这两个 POST 调用是 Worklight 在登录操作上引发两次的相同函数(由 singleStepAuthRealmChallengeHandler.submitAdapterAuthentication(invocationData, {}) 调用的 SingleStepAuthAdapter 内的 submitAuthentication 函数),错误与请求两次身份验证的事实有关:可能是当执行身份验证请求,此函数在 handleChallenge 内部调用 submitSuccess() 函数后发出两次(实际上,当我删除 submitSuccess 调用时,不会出现此问题,但未通知 WL 框架,例如isUserAuthenticated 函数返回 false,直到执行对安全资源的访问)。
如何解决此行为?使用 worklight 开发一个简单的登录表单的最佳实践是什么,允许在访问受保护的资源之前进行身份验证?我找到了一些解决方法(例如在执行 submitAuthentication 之前执行虚假数据请求,但我希望您能建议我一个更好的解决方案)。
我已经查阅了信息中心和入门模块,但可能由于我的错误,我无法找到任何有用的信息