1

当我在登录屏幕中第二次登录时出现以下错误。

    [ERROR   ] FWLSE0099E: An error occurred while invoking procedure  [project Klappr]KlapprAuthAdapter/submitAuthenticationFWLSE0100E:  parameters: [project Klappr]{
       "arr": [
  "dGVzdDp0ZXN0"
   ]
  }
   Cannot change identity of an already logged in user in realm 'KlapprAuthRealm'. The application must logout first.
    FWLSE0101E: Caused by:  [project Klappr]null 
                                                                                                           com.worklight.common.log.filters.ErrorFilter

在 submitauthentication(在适配器中)中,我检查用户名和密码是否正确,如果正确,我在 WorklightRealm 中设置 activeUser,如下所示:

    WL.Server.setActiveUser("KlapprAuthRealm",{
                        userId:""+teacher.id,
                        displayName: teacher.voornaam,
                        credentials:loginstring,
                        attributes: {
                            "teacherId": teacher.id,
                        }
                    });

如何检查用户是否已经登录?在我显示登录页面之前,这在客户端是最好的吗?或者我应该让他们能够在其他时间登录,如果他们已经登录,也返回 userId?

4

2 回答 2

0

发生这种情况是因为您正在尝试设置活动用户,但它已经设置好了。一种可能的解决方案可能是在使用实际用户身份设置活动用户之前调用 WL.Server.setActiveUser("KlapprAuthRealm", null) 。

于 2013-11-21T13:04:27.590 回答
0

如果您想在提交前在客户端检查:

WL.Client.isUserAuthenticated("KlapprAuthRealm")

可能需要阅读 WL.Client.createChallengeHandler 上的文档来处理会话和登录流程

于 2013-11-21T17:30:46.293 回答