我正在使用Worklight 6.1开发一个Android应用程序。我正在使用SingleStepAuthentication流程。现在有了单个userId,多个用户可以登录到应用程序,但我不想要这个。我想知道如何检查用户当前是否有效。如果我使用不同的用户登录,我收到以下错误。 非法国家:无法在领域中更改已登录用户的身份' SingleStepAuthRealm'应用程序必须先注销。
这是以下适配器程序。请看看。
function getUserLoginDetails(username, password){
var input = {
method : 'get',
returnedContentType : 'json',
path : 'webrootPath',
'parameters' : {
'userId' : username,
'password' :password
},
};
var response = WL.Server.invokeHttp(input);
var userIdentity = {
userId: username,
displayName: password,
attributes: {
data: response
}
};
WL.Server.setActiveUser("SingleStepAuthRealm", userIdentity);
return response,userIdentity;
}
在身份验证configuration.xml下面的代码
</customSecurityTest>
<customSecurityTest name="SingleStepAuthAdapter-securityTest">
<test isInternalUserID="true" realm="SingleStepAuthRealm"/>
</customSecurityTest>
<realm loginModule="AuthLoginModule" name="SingleStepAuthRealm">
<className>com.worklight.integration.auth.AdapterAuthenticator</className>
<parameter name="login-function" value="SingleStepAuthAdapter.onAuthRequired"/>
<parameter name="logout-function" value="SingleStepAuthAdapter.onLogout"/>
</realm>
请建议。
此致
Saroj
答案 0 :(得分:1)
在重新设置之前,请先尝试“重置”活动用户,因为您无法“替换”它。
首先致电WL.Server.setActiveUser("myRealm", null)
,然后致电WL.Server.setActiveUser("myRealm", {...})
。