【问题标题】:should I authenticate with every call to RESTHeart?我应该在每次调用 RESTHeart 时进行身份验证吗?
【发布时间】:2015-08-12 06:01:18
【问题描述】:

我想在 Swift、iOS 上编写一个信使应用程序,我选择了 MongoDB 作为数据库并在其上启用了身份验证。对于桥,我选择了 RESTHeart(GitHub)。但是对于从 RESTHeart 向数据库输入一些内容,我使用下一行:

http PUT 127.0.0.1:8080/myfirstdb desc='this is my first db created with restheart' -a username:password

所以,我对每个连接都使用身份验证。所以我的问题是:

是否可以,为信使应用程序的每个插入数据库登录,还是有其他更好的解决方案?我认为我需要让这个过程尽可能快

【问题讨论】:

  • 我非常想删除“swift”标签,因为这是一个直接的 REST-ful API 最佳实践问题。
  • @Jens 因为 RESTHear 是用 Java 编写的

标签: java restheart


【解决方案1】:

引用 RESTHeart 文档:

如果请求成功通过身份验证,则会生成一个身份验证令牌并将其包含在每个后续响应中。以下请求可以使用密码或身份验证令牌。

http://restheart.org/docs/security.html

您必须使用auth-token-enabled: true 配置启用身份验证令牌

【讨论】:

  • 感谢您的回答!我想问你,你如何在我的请求中看到我发送用户名:密码的 httpie。但它根本不安全。你能告诉我,我如何在没有 MongoDB 数据库的用户名和密码的情况下发送请求?
  • 不客气。这是一个单独的主题,所以我认为您应该为此提出一个新问题。
【解决方案2】:

您还应该确保使用 https。

引用 RESTHeart 文档:

使用无状态基本身份验证时,必须在每次请求时通过网络发送用户凭据。必须只使用 https 监听器;使用 http 侦听器凭据可以被中间人攻击嗅探。仅在开发时和受信任的环境中使用 http 侦听器。

【讨论】:

    最近更新 更多