Authentication Worklight LDAP身份验证从LDAPRealm注销
我正在尝试使用IBM Worklight Studio 6.2.0.01创建LDAP身份验证系统 登录系统工作正常,这一部分没有问题,但是注销功能实际上不会注销用户强> 领域:Authentication Worklight LDAP身份验证从LDAPRealm注销,authentication,ibm-mobilefirst,worklight-adapters,worklight-server,worklight-security,Authentication,Ibm Mobilefirst,Worklight Adapters,Worklight Server,Worklight Security,我正在尝试使用IBM Worklight Studio 6.2.0.01创建LDAP身份验证系统 登录系统工作正常,这一部分没有问题,但是注销功能实际上不会注销用户 领域: <realm loginModule="LDAPLoginModule" name="LDAPRealm"> <className>com.worklight.core.auth.ext.FormBasedAuthenticator</className> </realm&g
<realm loginModule="LDAPLoginModule" name="LDAPRealm">
<className>com.worklight.core.auth.ext.FormBasedAuthenticator</className>
</realm>
每次应用程序想要检查用户当前是否登录时,都会调用getUsername函数,除此之外,它没有其他功能。
注销功能(应用程序端)
结果:这会使应用程序通过注意到用户已注销而转到登录页面,唯一的问题是。。它尚未完全注销用户。我该怎么做才能让用户完全注销
PS:为什么不在WL.Client.logout()之后使用WL.Client.reloadApp?原因有二:
感谢您,并为这篇长篇大论感到抱歉我已通过在成功注销时删除WL.Client.reloadApp功能解决了此问题,我这样做:
$scope.logout = function(){
WL.Client.logout("LDAPRealm", {onSuccess: function(){
$scope.setUsername() // <-- this function is the secret function
// that triggers the securitytest
// which then gives back the login page because
// you had just logged out :)
}});
}
$scope.logout=function(){
logout(“LDAPRealm”,{onSuccess:function(){
$scope.setUsername()//您好。虽然我没有为您提供解决方案,但我确实想让您知道,正在调查WL.Client.reloadApp在Android 5.0中不起作用的错误。感谢您的报告。我已经为我的应用程序找到了解决方法,这涉及到不必使用WL.Client.reloadApp()我也测试了WL.Client.reloadApp,没有其他任何东西。我的意思是:没有AngularJS,没有Ionic,没有任何东西。只有纯html css和javascript。它仍然只在android 5.0Thanks上崩溃。你能把你的解决方案写下来作为答案,让其他人从中受益吗?当然,刚刚发布了itEdit:即使WL.Client.reloadApp可以工作,我也不会uld仍然更喜欢这个,因为这个解决方案不会给用户一个闪烁的屏幕。这更方便用户
<customSecurityTest name="LDAPSecurityTest">
<test realm="wl_directUpdateRealm" step="1"/>
<test isInternalUserID="true" realm="LDAPRealm"/>
</customSecurityTest>
<procedure name="getUsername" securityTest="LDAPSecurityTest" />
<procedure name="onLogout" />
function getUsername(){
return {username: ""};
}
function onLogout(){
WL.Server.setActiveUser("LDAPRealm", null);
}
$scope.setUsername = function(){
var invocationData = { adapter: "DummyAdapter", procedure: "getUsername"}
WL.Client.invokeProcedure(invocationData, {
onSuccess: function(result){},
onFailure: function(result){);
}
$scope.logout = function(){
WL.Client.logout("LDAPRealm", {onSuccess: $scope.setUsername});
}
$scope.logout = function(){
WL.Client.logout("LDAPRealm", {onSuccess: function(){
$scope.setUsername() // <-- this function is the secret function
// that triggers the securitytest
// which then gives back the login page because
// you had just logged out :)
}});
}