如何从 ui5 应用程序注销并重定向到另一个 ui5 应用程序登录?
Posted
技术标签:
【中文标题】如何从 ui5 应用程序注销并重定向到另一个 ui5 应用程序登录?【英文标题】:How to Logout from a ui5 app and get redirected to another ui5 app login? 【发布时间】:2020-03-03 19:43:01 【问题描述】:我开发了各种 UI5 应用,如果我想注销其中一个,所有 UI5 应用都应该注销。
例如。第一个应用程序是一个菜单。所以我登录第一个菜单应用程序。从这个应用程序有一个链接到另一个应用程序。现在我想从这个应用程序中注销并想要将重定向链接指向菜单登录。
我有以下代码用于注销第二个应用程序(不是菜单应用程序):
handleLogout: function (oEvent)
$.ajax(
type: "GET",
url: "/sap/.../logoff",
).done(function (data)
if (!document.execCommand("ClearAuthenticationCache"))
window.localStorage.clear()
$.ajax(
type: "GET",
url: "/sap/.../logoff",
username: '',
password: '',
statusCode:
401: function ()
,
error: function ()
);
);
var myVar = setInterval(function (oEvent)
window.location.replace("/sap/...->link to the menu<-");
, 100);
,
这段代码的结果是,我被重定向到菜单应用程序而不是它的登录。我猜是因为还有登录。
是否有机会或某种代码让我可以注销所有现有的 ui5 应用程序? 它与缓存设置有关吗?
【问题讨论】:
登录是如何实现的?如果是单点登录,注销后重定向后用户会自动登录... 这是标准的 sap fiori 登录。这是 SSO。 没有标准。如果是 SSO,什么协议? SAML、OAuth、Kerberos 等? 要在 SAP 中为自定义 ui5 应用设置“标准”登录,您必须调整服务配置(事务 sicf) 【参考方案1】:解决方案与您的会话机制有关。你如何管理用户会话?您使用的是 cookie 还是本地存储? 例如,您需要在 cookie 选项的注销过程中使 cookie 无效。
检查你的 ClearAuthenticationCache 方法,它看起来像使用本地存储方法。
【讨论】:
我使用的是cookie而不是本地存储...您知道如何在注销过程中使cookie无效吗? 您可以在服务端发送具有相同名称和过期日期的新cookie到当天之前。您也可以尝试在重定向之前将其从客户端删除。 好的,我发现了一些东西:document.cookie = name+'=;最大年龄=-99999999;';我想“名称”应该是我的 cookie 名称。我会试一试 注意:某些浏览器会阻止在客户端更改 cookie。 好的,我可以删除 cookie,但是,注销仍然不起作用(我在 chrome 中测试)以上是关于如何从 ui5 应用程序注销并重定向到另一个 ui5 应用程序登录?的主要内容,如果未能解决你的问题,请参考以下文章