Logi Info DataLayer.REST多步骤安全处理(绑定时出现401错误)

时间:2019-06-07 15:49:53

标签: .net rest oauth http-headers data-layers

当前正在努力将CheckBoxAPI添加到我们的网络服务中,要使多步安全处理正常工作似乎是一个很大的挑战。我遵循了Logi Info网站上的指示,但是我的努力产生了401未经授权的错误。

我可以标记两个数据表,它只会输出两个auth令牌,但是我似乎无法正确地传递它们。任何指导都会有很大帮助。

'''xml
<?xml version="1.0" encoding="utf-8"?>
<Report
    ID="CheckBox7"
    >
    <LocalData
        ID="cbAuth"
        >
        <DataLayer
            AcceptType="application/json"
            ConnectionID="API_Auth"
            HttpMethod="POST"
            ID="RESTDataLayer1"
            RemoveNamespace="True"
            Type="REST"
            UrlPath="/.../oauth2/token"
            >
            <HttpBody
                ContentType="application/x-www-form-urlencoded"
                >
                <HttpBodyParams
                    grant_type="password"
                    password="passwordGoesHere"
                    username="UsernameGoesHere"
                />
            </HttpBody>
            <Flattener/>
        </DataLayer>
    </LocalData>
    <SetSessionVariables
        ID="auth"
        >
        <SessionParams
            access_token="@Local.access_token~"
        />
    </SetSessionVariables>
    <Body>
            <DataTable
            ID="dtSurveyList"
            SortArrows="True"
            >
            <DataLayer
                ConnectionID="API_Queries"
                HttpMethod="GET"
                ID="RESTDataLayer2"
                Type="REST"
                UrlPath="/v1/.../survey-list?search_text=%7Bstring%7D&amp;folder_id=%7Bint%7D&amp;is_favorite=%7Bbool%7D&amp;page_size=%7Bint%7D&amp;page_num=%7Bint%7D&amp;status=%7Benum%7D&quot; "
                >
                <Remark>
                    <HttpBody
                        ContentType="application/x-www-form-urlencoded"
                        >
                        <HttpBodyParams
                        access_Token="@Session.authorization~"
                        />
                    </HttpBody>
                </Remark>
                <Flattener/>
            </DataLayer>
            <AutoColumns/>
        </DataTable>
        <Label
            Caption="@Local.access_token~"
        />
        <LineBreak/>
        <Label
            Caption="@Session.access_token~"
        />
        </Body>
        <ideTestParams/>
    </Report>

'''

预期的输出应该是api中的表格,实际的输出是401错误,如果有帮助,我也可以发布堆栈跟踪。在标题方面不是很强大,任何帮助都会很棒。

1 个答案:

答案 0 :(得分:-1)

结果证明必须使用'Bearer'标签指定access_token,即  <HttpBodyParams access_Token="@Session.authorization~" /> </HttpBody>