工作灯适配器:基本身份验证.如何设置我的所有适配器在每个过程的标头中发送 activeUser 凭据



我在Worklight中有一个登录页面,用于设置Worklight服务器上的活动用户。这将设置一个用户身份。在这个userIdentity中,我保存了一个加密的"用户名:密码"字符串。

每次调用适配器过程时,它都会测试用户是否已登录。当他登录时,将调用该过程。

在后端,我对每个 REST 调用都使用基本身份验证。所以我需要每个调用的标题 ->

    Authorization: Basic  encrypted(username:password)

当我嘲笑这个时,一切都正常。示例 ->

    var input = {
    method : 'get',
    returnedContentType : 'json',
    path : path,
     headers:{
            Authorization: "Basic "+"dGVzdDp0ZXN0"
        }

我需要设置,每次调用过程时,这个"用户名:密码"是来自在工作轻量级服务器中登录的用户的用户名:密码身份。

我该怎么做?


在 IBM Worklight 中授权 HTTP 适配器

在这里他们使用 $( 用户名 ),但我不知道 $ 符号指的是哪里。

我不

认为这是最好的方法,但它对我有用...

wheb 设置一个用户身份,我在用户对象中添加了一个登录字符串。此对象包含我在登录适配器中启动的 var 凭据。

登录字符串 = encode.encode_base64(用户:通过);

用户身份 = {

    userID:"01",
    displayName: "name",
    credentials:loginstring, 
    teacherId:"212",

}

西城。Server.setActiveUser("AuthRealm", userIdentity);

然后在适配器中,您可以访问 userIdentity-object:

函数 get() {

var user = WL.Server.getActiveUser("AuthRealm");
var input = {
    method : 'get',
    returnedContentType : 'json',
    headers:{
        Authorization: "Basic " + user.credentials
    },
    path : 'path',
};

返回 WL。Server.invokeHttp(input);}

在连接策略中,您只需要:

        <authentication>
            <basic/>
        </authentication>  

然后,对于每个过程,请使用:

<procedure name="getFeed" connectAs="endUser"/>

仅当您使用 connectAs="server" 时,才需要 serverIdentity

相关内容

  • 没有找到相关文章

最新更新