0

我使用了基于适配器的身份验证,并设置了userIdentity. 现在我试图获取loginnameusername使用 Worklight API 的WL.Client.getUserName(realm)and WL.Client.getLoginName(realm),但是这两个 API 调用都NULL作为结果返回。我已经使用下面的代码在适配器中设置了用户身份。当对基于适配器的身份验证进行身份验证时,我只是不知道如何设置用户的usernameand 。loginname我可以userId通过WL.Client.getUserInfo(realm, "userID").

如何设置usernameloginname

var userIdetity={
          userId : "kawin",
          disaplyName : "Kawinesh",
          attributes : {
          foo : "bar"
          }
  };
     WL.Server.setActiveUser(realmname,userIdentity);
4

2 回答 2

2

嗨,我找到了答案,我只需设置 usrIdentity 对象以及 userName 和 loginName 键值对,例如

var userIdentity = {
                userId: username,
                displayName: username, 
                attributes: {
                    foo: "bar"
                },
                loginName : username,
                userName : username
        };
于 2013-11-30T11:26:30.083 回答
1

您可以在创建用户身份时存储自定义属性(如用户名和登录名),如下所示:

   var userIdetity={
          userId : "kawin",
          displayName : "Kawinesh",
          attributes : {
             username : "your_user",
             loginname : "your_login_name"                 
          }
  };

  WL.Server.setActiveUser("AdapterAuthRealm", userIdentity);

然后,在客户端,您可以检索那些获取“属性”对象的值,如下所示:

var attributes = WL.Client.getUserInfo("AdapterAuthRealm", "attributes");
var username = attributes.username;
var loginname = attributes.loginname;

希望有帮助。

于 2013-11-29T23:06:23.180 回答