小编Obt*_*bto的帖子

RESTful API身份验证

我在SO上发现了很多关于这个主题的问题,但是找不到任何回答这个问题的问题:

我应该使用用户名和密码,还是使用API​​密钥验证用户?每种方法的优缺点是什么?

我问这个是因为在我的API中,有几种方法我想锁定并验证用户是否可以访问某些文档或操作.我有点不愿意通过让用户使用他们的用户名和密码发送HTTP AUTH标头进行身份验证,因为它感觉不安全并且对用户来说更麻烦.另一方面,如果我使用API​​密钥,那么用户创建密码的重点是什么?因为他们将不再使用它来访问API的功能.

UPDATE

如果其他读者对我最终使用的内容感到好奇,我决定复制亚马逊的验证方式(这里有很好的解释:https://www.ida.liu.se/~TDP024/labs/hmacarticle.pdf)

api rest restful-authentication

16
推荐指数
2
解决办法
2万
查看次数

CouchDB"加入"两个文件

我有两个文件看起来有点像这样:

Doc
{
  _id: AAA,
  creator_id: ...,
  data: ...
}

DataKey
{
  _id: ...,
  credits_left: 500,
  times_used: 0,
  data_id: AAA
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是创建一个视图,允许我传递DataKey id(key = DataKey _id)并获取DataKey和Doc的信息.

我的尝试:

我首先尝试在Doc中嵌入DataKey并使用如下的map函数:

function (doc)
{
  if (doc.type == "Doc")
  {
    var ids = [];
    for (var i in doc.keys)
      ids.push(doc.keys[i]._id);

    emit(ids, doc);
  }
}
Run Code Online (Sandbox Code Playgroud)

但我遇到了两个问题:

  1. 每个Doc可以有多个DataKey,因此使用startkey = [idhere ...]和endkey = [idhere ...,{}]不起作用(仅当密钥发生在数组中的第一个时才有效).
  2. 所有数据键都必须是唯一的,我宁愿不制作像{_id = datakey}这样的单独文档来保留密钥.

有谁有想法我怎么能做到这一点?如果有什么不清楚,请告诉我.

- - -编辑 - - -

我忘了提到在我的应用程序中我不知道Doc ID是什么,所以我需要能够搜索DataKey的ID.

couchdb mapreduce views nosql

13
推荐指数
1
解决办法
7660
查看次数

CouchDB按文档类型创建数据库?

我刚刚开始使用couchdb,到目前为止我真的很喜欢它,但我想知道你什么时候应该创建一个新的数据库.

这就是我的意思:

如果我要在具有多个博客的服务器上创建一个博客,这是一个RDBMS,我将创建一个名为fox_blog的数据库,并为帖子,评论等创建表和关系.

现在在CouchDB中,我只需要制作3种文档类型:帖子,评论和用户帐户.

但这是我的问题:我是否会创建一个名为fox_blog的数据库并为每个文档添加一个"类型"字段(例如,在帖子文档中会有一个'type'字段,其值为'post')?或者我会为每个文档创建一个单独的数据库,并在名称前面加上fox_(例如,db name将是fox_posts的帖子)?或者这些都不正确吗?

如果有任何不清楚的地方,请告诉我,有点难以解释

database-design couchdb nosql

12
推荐指数
3
解决办法
4546
查看次数

Bcrypt - 迭代次数/成本是多少?

我读过一些文章说你应该把成本设置为至少16(2 16),而其他人说8左右是好的.

是否有成本应该设定的高官方标准?

cryptography bcrypt

10
推荐指数
2
解决办法
4430
查看次数

PHP DOMDocument命名空间

我正在编写一个脚本,该脚本需要一个网页,并检测使用像facebook这样的按钮的次数.由于这最好用DOM完成,我决定使用PHP的DOMDocument.

不过,我遇到的一个问题是像facebook这样的按钮:

<fb:like send="true" width="450" show_faces="true"></fb:like>
Run Code Online (Sandbox Code Playgroud)

由于此元素在技术上具有"fb"的命名空间,因此DOMDocument会抛出一条警告,指出此命名空间前缀未定义.然后它继续去除前缀,所以当我到达所述元素时,它的标签不再是fb:like,而是.

有没有办法"预注册"命名空间?有什么建议?

php dom

7
推荐指数
1
解决办法
4810
查看次数

函数重写在哪里?

在创建程序,编译器,链接器等的过程中,是否覆盖了函数和运算符重载?

我特别感兴趣的是在C++,Ruby和Python中完成它.

c++ ruby python overriding overloading

5
推荐指数
1
解决办法
842
查看次数

在Linux中获取文件元数据

我的服务器上有一个脚本解析字体,所以我可以在我的应用程序中使用它们.

遗憾的是,很多时候字体文件本身的名称是错误的(例如,文件可能被命名为_FONT1.ttf).然而,在Windows上,当我打开文件的属性时,我看到在字体详细信息选项卡(即其元数据)中,正确的名称存储在名为"标题"的字段中.

如何从我的文件中提取这段元数据?

linux fonts

3
推荐指数
1
解决办法
4526
查看次数

在插入/更新之前验证数据还是不验证?

如果您在数据库(例如 MySQL)中正确定义了检查和断言,那么在更新记录或将记录插入到像 MySQL 这样的数据库中之前验证数据是好的做法还是值得?

从我看来,只要您必须执行的检查并不复杂并且可以由数据库本身完成,那么先验证 PHP 中的数据,然后再验证 MySQL 中的数据看起来很浪费。

我的说法正确吗?

php mysql database

3
推荐指数
1
解决办法
1217
查看次数