我应该在哪里存储访问令牌

Ric*_*edl 5 node.js facebook-messenger botframework

我目前正在为 Facebook Messenger 开发聊天机器人。我正在使用 Microsoft bot 框架,代码是用 node.js 编写的。

我正在通过 api 与数据库交互。对于每个请求,我都必须在请求标头内传递访问令牌。我在互联网上读到,您通常会将这样的令牌存储在 cookie 或网络存储中。但我还发现您无法在 Facebook Messenger 上执行此操作。我正在考虑将访问令牌存储在变量中,但我担心这可能不安全。还有其他安全的方式来存储访问令牌吗?

我对 Node.js 相当陌生,这是我第一次使用令牌。非常感谢您的帮助。

Eri*_*ang 2

您可以使用session.userData来保存数据库令牌。如果您担心它的安全性,请在保存之前对其进行加密。

session.userData.dbtoken = encryptToken(token);
Run Code Online (Sandbox Code Playgroud)

稍后可以在需要时检索并使用该令牌:

var token = decryptToken(session.userData.dbtoken);
var databaseData = getUserDataFromDatabase(token);
Run Code Online (Sandbox Code Playgroud)

https://docs.botframework.com/en-us/core-concepts/userdata/

或者,使用 NeDB 等本地数据库: https: //github.com/louischatriot/nedb 这将是最安全的选择,因为数据库将驻留在您的服务器上。