Worklight: WL.Server.setActiveUser - Nie można modyfikować - Niedozwolony stan: Nie można zmienić tożsamości

Próbuję zmodyfikować zalogowaną tożsamość użytkownika,

var mydata="this is custom data array";

var user = JSON.parse(JSON.stringify(WL.Server.getActiveUser()));
           WL.Logger.debug("Before Update" + user.attributes);
           WL.Logger.debug(" displayName =" + user.displayName );
           WL.Logger.debug("isUserAuthenticated ="+ user.isUserAuthenticated );
           WL.Logger.debug("userId =" + user.userId );

          WL.Server.setActiveUser ("myAppRealm" ,{    userId: user.userId ,
               displayName: user.displayName,
               isUserAuthenticated: user.isUserAuthenticated,
               attributes: {  userdata: mydata   }
           } );
           WL.Logger.debug(" ---- Updateed user ---- "  );
           var user = JSON.parse(JSON.stringify(WL.Server.getActiveUser())); 

ale to jestpodając poniżej wyjątek.

response [/apps/services/api/myApp/common/query] success: /*-secure-
{"isSuccessful":false,"warnings":[],"errors":["Illegal State: Cannot change identity of an already logged in user in realm 'myAppRealm'. The application must logout first."],"responseID":"67","info":[]}*/ worklight.js:1097
Procedure invocation error. Illegal State: Cannot change identity of an already logged in user in realm 'myAppRealm'. The application must logout first. 

Jak mogę to zmienić?

Edytować:

@Xv. Cóż, w tym czasie musiałem zapisać pewne wartości w obiekcie sesji użytkownika. W tym celu po raz pierwszy próbowałem zmodyfikować obiekt użytkownika, jak wspomniano powyżej, ale potem znalazłem poniżej wymienione API, które pomagają w pobieraniu, modyfikowaniu lub dodawaniu wartości w obiekcie sesji.

Dokumenty WL 6.3:

MobileFirst API po stronie serwera> JavaScript po stronie serwera API> Klasy> WL.Server

Dostęp do obiektu HttpServletRequest.

WL.Server.getClientRequest

Daje to bezpośredni dostęp doHttpServletRequest obiekt, a następnie możesz użyć wszystkich jego metod, tak jak w aplikacjach JEE.

Na przykład:

WL.Server.getClientRequest (). GetSession (). GetAttribute ("mykey") WL.Server.getClientRequest (). GetSession (). SetAttribute ("mykey", myobj)

questionAnswers(1)

yourAnswerToTheQuestion