0

https://docs.marklogic.com/xdmp:http-post関数を見つけました。

トークン認証方式を使用して、JSON ドキュメントを MarkLogic から中間層の node.js アプリケーションに送信したいと考えています。トークン認証を使用しています。

これを機能させるには、どの http オプションを使用すればよいですか?

例:

(: Use xdmp:quote to encode the XML as a string
   because the <data> options element is a string :)
let $payload := xdmp:quote('
{"alert": {
                "id": "123abc",
                "type": "sensorAlert",
                "timestamp": "2015-08-12 T 13:48:45 CET",
                "actions": ["go get them!"],
                "status": "active"
            }
}'
)
return
xdmp:http-post("http://cluey-app-ml1:9070/alert",
     <options xmlns="xdmp:http">
       <authentication method="basic">
         <username>myname</username>
         <password>mypassword</password>
       </authentication>
       <data>{$payload}</data>
       <headers>
         <content-type>application/json</content-type>
       </headers>
     </options>)

もちろん、これをそのまま投稿すると、401の無許可の応答が得られます。

<response xmlns="xdmp:http">
<code>401</code>
<message>Unauthorized</message>
<headers>
<x-powered-by>Express</x-powered-by>
<access-control-allow-origin>*</access-control-allow-origin>
<content-type>text/html; charset=utf-8</content-type>
<content-length>26</content-length>
<etag>W/"1a-14Zh6wfLQpiHPatjrIEVAQ"</etag>
<set-cookie>connect.sid=s%3AT_lwAwvX9-1rJ7It7x42w126532HtIA2.nr5Zt2dONb6Q0uD7LpryZrpEsOUvXL8ZHUiTr8hOsfg; Path=/; HttpOnly</set-cookie>
<date>Tue, 08 Sep 2015 13:50:27 GMT</date>
<connection>keep-alive</connection>
</headers>
</response>
Text document 
Could not broadcast alert.
4

1 に答える 1

0

私が知っている「機能」ではありませんが、リクエスト「A」を実行してトークンを取得し、それを ML に保存してから、トークン システムに必要な適切なヘッダー情報を設定することで、それを後続のリクエストに使用することを妨げるものは何もないでしょう。 (例として Authentication:Bearerxxxxx など)

トークンはヘッダー情報として返送されます。このページでヘッダー情報を設定する方法のオプションを確認できます: https://docs.marklogic.com/xdmp:http-get

コメントを反映するために以下を編集:

<headers>
  <access-token>eyJ0eXAiO...RDHaNEjftfja-MofLqlv6fUKmN7k...</access-token>
  <content-type‌​&gt;application/json</content-type>
</headers>
于 2015-09-08T18:00:00.087 に答える