Ibm mobilefirst java.lang.IllegalStateException:无法更改域中已登录用户的标识
我在登录时遇到以下错误 无法更改域“AdapterAuthRealm”中已登录用户的标识。应用程序必须先注销 FWLSE0101E:原因:java.lang.IllegalStateException:无法更改域“AdapterAuthRealm”中已登录用户的标识。应用程序必须先注销 我的代码如下 Adapter.jsIbm mobilefirst java.lang.IllegalStateException:无法更改域中已登录用户的标识,ibm-mobilefirst,Ibm Mobilefirst,我在登录时遇到以下错误 无法更改域“AdapterAuthRealm”中已登录用户的标识。应用程序必须先注销 FWLSE0101E:原因:java.lang.IllegalStateException:无法更改域“AdapterAuthRealm”中已登录用户的标识。应用程序必须先注销 我的代码如下 Adapter.js function submitAuthentication(username, password){ serversession = storeSession(us
function submitAuthentication(username, password){
serversession = storeSession(username);
if (username!=""){
var userIdentity = {
userId: username,
displayName: username,
attributes: {
foo: "bar"
}
};
WL.Server.setActiveUser("AdapterAuthRealm", userIdentity);
return {
authRequired: false
};
}
return onAuthRequired(null, "Invalid login credentials");
}
function onLogout(){
WL.Server.setActiveUser("AdapterAuthRealm", null);
WL.Logger.debug("Logged out");
}
客户端
注销('AdapterAuthRealm',{onSuccess:WL.Client.reloadApp}) 之前:
WL.Server.setActiveUser(“AdapterAuthRealm”,userIdentity)代码>
加:
WL.Server.setActiveUser(“AdapterAuthRealm”,null)代码>
这将确保您在登录用户之前有一个干净的记录
最终结果是:
function submitAuthentication(username, password) {
serversession = storeSession(username);
if (username !== "") {
var userIdentity = {
userId: username,
displayName: username,
attributes: {
foo: "bar"
}
};
WL.Server.setActiveUser("AdapterAuthRealm", null);
WL.Server.setActiveUser("AdapterAuthRealm", userIdentity);
return {
authRequired: false
};
}
return onAuthRequired(null, "Invalid login credentials");
}
我已经尝试过这个解决方案。结果导致应用程序进入无限循环。无论我们在哪里导航,它都会被重定向到主页,那么我认为您的应用程序中还有其他问题。可能在您的挑战处理程序或应用程序逻辑中。