如何在Worklight中创建用户特定的会话

时间:2014-10-31 08:43:34

标签: android ibm-mobilefirst

我正在使用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

1 个答案:

答案 0 :(得分:1)

在重新设置之前,请先尝试“重置”活动用户,因为您无法“替换”它。

首先致电WL.Server.setActiveUser("myRealm", null),然后致电WL.Server.setActiveUser("myRealm", {...})