2014-10-31 2 views
-1

Я разрабатываю приложение для Android с использованием Worklight 6.1. Я использую SingleStepAuthentication. Теперь, когда один пользовательский пользователь может войти в приложение, но я этого не хочу. Я хотел бы знать, как я могу проверить, что пользователь в данный момент активен. а также, если я являюсь логином с другим пользователем, я получаю следующую ошибку. Недопустимое состояние: невозможно изменить идентификацию уже зарегистрированного пользователя в realm '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

Попробуйте первый «сброс» активного пользователя перед установкой его снова, так как вы не можете «заменить» его.

Первый звонок WL.Server.setActiveUser("myRealm", null), а затем позвоните WL.Server.setActiveUser("myRealm", {...}).

+0

HI Идан, благодарю вас за ответ. Я хотел бы избежать ввода нескольких пользователей одним идентификатором. Как это сделать. пожалуйста, предложите. Спасибо. – user1694527

+0

Нет ничего встроенного, которое позволит вам обнаруживать пользователей, которые уже вошли в систему. Вам нужно либо использовать эту функциональность на своем сервере, либо реализовать вручную, например. путем создания базы данных и отслеживания логинов/выхода из системы. – Anton

Смежные вопросы