【问题标题】:Can't make client API Redmine authentication无法进行客户端 API Redmine 身份验证
【发布时间】:2022-01-18 04:16:26
【问题描述】:

我正在尝试制作 Android 应用程序 - API Redmine 的客户端。首先我需要的是身份验证,但我真的不明白如何实现它。 (使用改造)文档只说:

大多数时候,API 需要身份验证。要启用 API 样式的身份验证,您必须在管理 -> 设置 -> API 中选中启用 REST API。然后,可以通过两种不同的方式进行身份验证:

  1. 通过 HTTP 基本身份验证使用您的常规登录名/密码。 使用您的 API 密钥,这是一种避免在脚本中输入密码的便捷方法。 API 密钥

  2. 可以通过以下方式之一附加到每个请求:

  • 作为“关键”参数传入
  • 通过 HTTP Basic 身份验证作为用户名和随机密码传入
  • 作为“X-Redmine-API-Key”HTTP 标头传入(在 Redmine 1.1.0 中添加)

登录后,您可以在帐户页面 ( /my/account ) 的默认布局的右侧窗格中找到您的 API 密钥。

我找到了这个解决方案:

  1. HTTP 基本身份验证 – http://login:password@redmine.org/issues.xml
  2. 带有 API 令牌和登录名的 HTTP 基本身份验证 - http://login:RANDOM_KEY@redmine.org/issues.xml-(尚不支持)
  3. 带有 API 令牌的 HTTP 基本身份验证 – http://RANDOM_KEY:X@redmine.org/issues.xml
  4. 完整的令牌认证 - http://redmine.org/issues.xml?key=RANDOM_KEY

但它不起作用。 API Redmine 的所有开源客户端都使用自己的服务器/域之类的东西 - 我不明白。例子:

     - http://**my.server**/projects/test.xml?key=1234
     - http://**localhost:3000**/news.xml?key=01fc3e3832e32ae8c12bf0c3b0819ca4a5972825
     - https:**sample.redmine.com**/

我需要一些帮助来理解这是什么(粗体字)。如果没有这个,我无法提出我的请求,或者在 Retrofit 中使用 BASE_URL

【问题讨论】:

    标签: android api authentication client redmine


    【解决方案1】:

    Redmine 是一个开源软件包。因此,人们将它安装在他们自己的服务器上,这使得他们的 Redmine 安装在他们自己的主机名(可能还有子路径)上可用。

    因此,在实现 Redmine 客户端时,您通常需要一种方法让客户端用户配置其 Redmine 服务器的基本 URL,例如 https://www.redmine.orghttp://server.example.com:8080/redmine

    然后,您使用客户端生成的所有 API 请求都与此基本 URL 相关。但同样,每个用户的基本 URL 可能不同,需要由他们指定。

    【讨论】:

    • 非常感谢!这正是我所需要的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 2012-01-10
    相关资源
    最近更新 更多