使用令牌的基本 Http 身份验证

问题描述 投票:0回答:1

我正在尝试使用 power query 从 api 中提取数据以进行进一步分析,但不幸的是它抛出一个错误,指出我们无法使用提供的凭据进行身份验证,请重试。该 API 使用基本身份验证,并且有单独的端点用于登录(身份验证)和其他结构化数据。请参阅下面我在电源查询中使用的代码(同一查询中的整个代码)


`步骤1

Mainurl = "url"
path = " api/v1/auth/login"
login = Json.Document( Web.Content ( Mainurl,
RelativePath = path,
[
Header = [#"Content Type" = "application/json", #"Authorisation" =  Basic < base 64 encoded username : password > ]
]
))

Token =Text.From(Record.Field(login,"antiCsrfToken") -- capture token in a variable

Step 2
datarequestAPI = "api/vendor/transaction"
Datarequest =Json.Document( Web.Content ( Mainurl,
RelativePath =  datarequestAPI ,
[
Headers = [#"Content Type" = "application/json", #Authorisation" = "Bearer "& Token ]
]
))`

在调试代码时,第 1 步块一切正常,即登录正常,它返回一个 antiCsrfToken,然后我将其传递到一个变量以在第 2 步中使用。但不幸的是,它在第 2 步中出错,说我们无法使用提供的凭据进行身份验证

  1. 尝试了 api/vendor/transaction 方法,但没有在标头中提供令牌,因为我没有根据 API 文档在参数中看到授权部分。 cURL 仅包含 mainurl-path-查询参数。标头仅包含 Accept : application/json。我自然认为这个方法不需要令牌作为参数。但没成功

  2. 在步骤 2 中在标头中提供了令牌作为 APIKey。这也失败了

  3. 在标头中提供承载令牌授权(上面的代码)-“承载”之后有或没有空格

  4. 有和没有令牌变量的文本转换步骤。

  5. 尝试使用 UI 构建身份验证

执行上述所有步骤后,单击数据源设置并确保连接类型 = 匿名且隐私 = 无(尝试隐私 = 无、公共、组织)

我的所有尝试都失败了,并出现相同的错误“我们无法使用提供的凭据进行身份验证,请重试”。事实上,登录方法工作正常,但下一步失败,这让我感到困惑。必须与我在下一步“api/vendor/transaction”方法中传递令牌的方式有关,或者是否需要令牌来提取数据。我不知道我还能如何让服务器知道我已经完成登录,请相信我并给我我的数据!!.

powerbi powerquery basic-authentication m powerbi-api
1个回答
0
投票

#授权”应为#“授权”

© www.soinside.com 2019 - 2024. All rights reserved.