删除 Worklight Adapter 中的 Cookie:多个会话使用基于相同适配器的身份验证

Posted

技术标签:

【中文标题】删除 Worklight Adapter 中的 Cookie:多个会话使用基于相同适配器的身份验证【英文标题】:Remove Cookies in Worklight Adapter : multiple sessions using same adapter based authentication 【发布时间】:2013-02-28 11:51:56 【问题描述】:

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

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

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

在调试的时候,我可以看到我在认证请求响应头中,当第一个用户登录时:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

function wlCommonInit() 

    window.onbeforeunload = function() 
        WL.Logger.debug("logging out");
        WL.Client.logout();
    ;

【讨论】:

以上是关于删除 Worklight Adapter 中的 Cookie:多个会话使用基于相同适配器的身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Worklight 中查看 .adapter 文件的内容

将 cookie 附加到 WorkLight Adapter 响应标头

IBM Worklight Adapter 无法正确转换来自后端服务的法语文本响应

Worklight、SQL-Adapter、指定为定义者的用户 ('mobilefirst'@'localhost') 不存在

IBM Worklight 8.0 Adapter 调用 Java 代码

IBM Worklight Adapter 需要 OAuth