我在这方面看到了很多线索,但没有具体说明如何做到这一点。
我目前正在让用户通过 OAuth2 向第 3 方进行身份验证,作为回报,我获得了访问令牌。
我想长期存储此访问令牌,因此我正在使用数据库来执行此操作。
我的问题是如何处理这个数据库条目以确保安全。
我无法对它进行哈希处理(就像密码一样),因为我需要能够阅读并使用原件代表用户呼叫第 3 方。
因此,我只能保持原样,找到一种 2 向加密方法(是否有最佳/推荐的 npm 包?)或我不知道的其他解决方案。
我对访问令牌的安全性没有经验 - 所以不知道采取的最佳途径,并希望提供任何见解。
谢谢
我已经查看了有关此问题的一些答案/问题,但尚未找到解决方案。
我有一个包含文档(简化)的集合,如下所示:
{
"id": 123
"stuff": "abc"
"array":[
{
"id2":456
"properties": [
{
"id3": 789
"important": true
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想检查for我的集合中的每个文档,for每个array对象array,for每个对象properties,如果有的important: true话。然后返回:
"id": 123
"id2": 456
"id3": 789
Run Code Online (Sandbox Code Playgroud)
我尝试过使用:
client.queryDocuments(self.collection._self, querySpec).toArray(function(err, results) {
if (err) {
callback(err);
} else {
callback(null, results[0]);
}
});
Run Code Online (Sandbox Code Playgroud)
但问题是数组有最大字符数限制。如果我的收藏有数百万份文档,这可能会超出。(Javascript增加最大数组大小)
或者,我误解了上面的问题吗?它是在谈论数组中的对象数量(其中每个对象可以具有无限的对象字符长度吗?)
因此,我正在寻找一个for loop类似的解决方案,其中返回每个文档,我进行分析,然后移动到下一个/并行执行它们。
任何见解将不胜感激。
我正在使用Azure CosmosDB存储文档(JSON)。
我试图查询包含该字段的所有文档,"abc"而不返回不包含该字段的文档"abc"。例如,返回下面的第一个对象,而不是第二个
{
"abc": "123"
}
{
"jkl": "098"
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下代码:
client.queryDocuments(
collectionUrl,
`SELECT r.id, r.authToken.instagram,r.userName FROM root r WHERE r.abc`
)
Run Code Online (Sandbox Code Playgroud)
我假设上面会检查是否abc存在类似于if (r.abc) {}
我尝试使用 WHERE r.abc IS NOT NULL
提前致谢
我创建了一个搜索机制,搜索字符串数组以获得精确的字符串匹配,但我希望它更直观一些.
我也可以让它在字符串中搜索一个字符串(例如chicken在grilled chicken- 但问题是这允许用户键入ken或ill返回grilled chicken.
如果我输入chicken或者我希望它返回grilled.
有没有人对如何拥有更直观的搜索机制有任何建议?
编辑:
键入1个单词时,下面的正确答案有效,它会搜索字符串中的所有单个单词.但是,当你用2个单词搜索时,我意识到它失败了(因为它只搜索每个字符串单词).
我通过添加|| search == string到if包括不仅单独的单词匹配而是整个字符串匹配来解决这个问题.
但是我仍然遇到问题,要么搜索:
整个字符串匹配或匹配单个单词.
这意味着当search = green cup和时它失败了string = big green cup.有没有办法通过剪切集合来搜索内部?也许类似于:
string.split(' ')但也要包括big green, green cup阵列呢?