0

我正在使用 Worklight 适配器并使用基于身份验证的适配器,它通过第三方 Web 服务(grails 服务器)验证凭据。

使用一个用户进行测试时,一切都很好,但是一旦我开始使用多个用户帐户,我发现所有用户都连接到同一个会话,使用相同的 Cookie JSESSIONID

我认为 worklight 适配器正在从以前的请求中添加 cookie,这相当于一个浏览器连接到不同的帐户,而不删除旧的 cookie/注销。

调试时,我可以看到我在身份验证请求响应标头中,当第一个用户登录时:

"Set-Cookie":"JSESSIONID=63850CB333E7C279DC6D5B1D973B21E7; Path=/"

并且当第二个用户登录时,响应中不再有“Set-Cookie”标头。

任何人都有解决方案或解决方法?

连接到身份验证网络服务器时,如何强制 worklight 删除现有的 cookie?

4

2 回答 2

2

在您的适配器过程中,您应该添加属性connectAs="endUser"。这样,每个用户都将创建到身份验证后端的唯一连接,并且他们不会共享相同的会话 ID。

于 2013-02-28T12:10:32.833 回答
1

我在关闭窗口时强制注销。像这样的东西:

function wlCommonInit() {

    window.onbeforeunload = function() {
        WL.Logger.debug("logging out");
        WL.Client.logout();
    };
}
于 2013-05-22T19:00:07.690 回答