API 请求在 powershell 上返回 401,但在邮递员 200 上返回

时间:2021-07-06 15:56:42

标签: powershell api rest postman unauthorized

我有一个副本请求(来自 chrome 控制台,谢谢谷歌)会话已打开并且 cookie 处于活动状态但由于某种原因在 Powershell 上提示 401,但是在 Postman 上工作正常。我用谷歌搜索了它,他们说我必须在 base 64 上对其进行编码,我用相同的结果进行了编码。我正在尝试使用给定的 Xrsf 令牌和 ID 而不是用户和密码,请注意,我没有用户和密码,我必须使用这些令牌和 ID,请记住可能的编码答案。

最重要的标头(如果我删除它们,请求将不会继续 Postman)是 x-XSRF-TOKEN 和您拥有 ID 和令牌的 cookie,删除其中任何一个都会导致请求返回 401 未经授权.

$id = "nsu38L1xRGS2YzYad7LwVw|pSbDDmSDd7dP836sxvwJNXwweEWTD3s7xJ5oPcYZ"
$token = "VRnWDtc6JJrSSXGFsDIGSsxaqa0SbVbkHFSFSFSFSFwxyqg3CKU"
$id = [System.Text.Encoding]::UTF8.GetBytes($id)
$id = [Convert]::ToBase64String($id)
$token = [System.Text.Encoding]::UTF8.GetBytes($token)
$token = [Convert]::ToBase64String($token)
Invoke-WebRequest -Uri "https://tableauserver.am.echonet/vizportal/api/web/v1/getServerUsers" `
-Method "POST" `
-Headers @{
"sec-ch-ua"="`" Not;A Brand`";v=`"99`", `"Google Chrome`";v=`"91`", `"Chromium`";v=`"91`""
  "Accept"="application/json, text/plain, */*"
  "X-XSRF-TOKEN"="$token"
  "sec-ch-ua-mobile"="?0"
  "User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
  "Origin"="https://tableauserver.am.echonet"
  "Sec-Fetch-Site"="same-origin"
  "Sec-Fetch-Mode"="cors"
  "Sec-Fetch-Dest"="empty"
  "Referer"="https://tableauserver.am.echonet/"
  "Accept-Encoding"="gzip, deflate, br"
  "Accept-Language"="en-US,en;q=0.9"
  "Cookie"="persist=!9xF+uxkmcIc/PdfddsaewUU98ySpzJVE7fgdsbe+Dddsjzgdf9SfTdgNyd/UTOFu8Pgs2o4X08j/e1Kv3GCNGOmpG5Nd0WdbTM=; workgroup_session_id=$id; XSRF-TOKEN=$token"
} `
-ContentType "application/json;charset=UTF-8" `
-Body "{`"method`":`"getServerUsers`",`"params`":{`"filter`":{`"operator`":`"and`",`"clauses`":[{`"operator`":`"eq`",`"field`":`"username`",`"value`":`"423dse063`"},{`"operator`":`"eq`",`"field`":`"domainName`",`"value`":`"local`"}]},`"page`":{`"startIndex`":0,`"maxItems`":1}}}" 

我还尝试对 Id 和令牌进行编码,如本文所示:

https://qualys-secure.force.com/discussions/s/article/000003066

不加密的命令也试过了。

提前致谢。

Error on powershell

0 个答案:

没有答案