在SAP HANA Cloud Portal中处理会话超时

2020-08-18 02:51发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我正在使用HCP P...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我正在使用HCP Portal SAPUI5应用程序。 在对后端进行每次数据调用之前,我需要检查会话,以便可以将用户重定向回登录页面。

在HANA Cloud文档中,提供了以下代码:

 jQuery(document).ajaxComplete(function(e,jqXHR){
   如果(jqXHR.getResponseHeader(" com.sap.cloud.security.login")){
     alert("会话已过期,应重新加载页面。");
     jQuery.sap.delayedCall(0,this,function(){
       location.reload(true);
     });
   }
 });
 

上面的代码是否仅适用于Ajax和oData调用。 会话期满后,我们希望在每种情况下都将用户重定向到登录页面。

对于oData调用和Ajax调用都有直接的方法来实现吗?

3条回答
樱桃小丸子0093
2020-08-18 03:03

感谢Boaz,

您能否帮助我实现oData调用的相同功能。 我尝试使用下面的代码,但是即使使会话无效,该代码也不会达到oMetadata Failed。

 jQuery.sap.intervalCall(5000,this,function(){
 var serviceURL = this.getManifestEntry("/img/sap.app/dataSources/domainPath/uri");
 var sessionCheckURL = serviceURL +"/BRS/HAA/services/AppConfig.xsodata";
 var oSessionChckModel = new sap.ui.model.odata.ODataModel(sessionCheckURL);
 oSessionChckModel.attachMetadataFailed(function(oEvent){
 警报("会话已过期");
 }, 这个);
 oSessionChckModel.attachMetadataLoaded(function(oEvent){
 警报("会话有效");
 });
 }); 

它永远不会进入attachMetadataFailed事件,并且在MetadataLoaded事件内部,我无法在标题中找到参数" com.sap.cloud.security.login"。

我测试会话超时的方法如下:

  1. 运行SAPUI5应用。
  2. 注销HANA Cloud Platform主控室,以使其在IDP级别(即每个单个应用程序)上的会话无效。
  3. 每5秒钟对示例服务进行一次oData调用,以检查会话是否有效。

我应该使用其他方法吗?

最好的问候

Deepak

一周热门 更多>