我目前正在为Facebook Messenger开发一个聊天机器人。我正在使用Microsoft框架,代码是用node.js编写的。
我正在通过api与数据库进行交互。对于每个请求,我必须在请求头内传递一个访问令牌。我在互联网上读到,你通常会把这样的令牌存储在一个曲奇或网络存储器中。然而,我也发现你不能在Facebook Messenger上这么做。我在考虑将访问令牌存储在变量中,但我担心这可能不安全。还有其他安全的方法来存储访问令牌吗?
我对node.js相当陌生,这是我第一次使用令牌。帮助是非常感谢的。
发布于 2017-04-20 21:50:57
您可以使用session.userData保存数据库令牌。如果您担心它是否安全,那么在保存之前对其进行加密。
session.userData.dbtoken = encryptToken(token);
稍后可以检索令牌,并在需要时使用它:
var token = decryptToken(session.userData.dbtoken);
var databaseData = getUserDataFromDatabase(token);
https://docs.botframework.com/en-us/core-concepts/userdata/
或者,使用像NeDB:https://github.com/louischatriot/nedb这样的本地数据库--这将是最安全的选项,因为数据库位于您的服务器上。
发布于 2020-08-26 16:30:30
我建议你用快餐会。出于以下原因。使用给定的选项创建会话中间件。
注意:会话数据没有保存在cookie本身中,只是会话ID。会话数据存储在服务器端。
注自1.5.0版本以来,不再需要使用cookie解析器中间件来使该模块工作。这个模块现在直接在req/res上读写cookie。如果这个模块和cookie解析器之间的秘密不相同,那么使用cookie解析器可能会导致问题。
警告默认服务器端会话存储( MemoryStore )并不是为生产环境而设计的。在大多数情况下,它都会泄漏内存,不会扩展到单个进程,而是用于调试和开发。
发布于 2019-03-10 08:21:01
假设此令牌没有改变,您可以将其存储为环境变量,比如TOKEN
,并以process.env.TOKEN
的形式在nodejs应用程序中访问它。
https://stackoverflow.com/questions/43496307
复制相似问题