我应该在哪里存储访问令牌
Where should I store access token
我目前正在为 Facebook Messenger 开发聊天机器人。我正在使用 Microsoft bot 框架,代码是用 node.js.
编写的
我正在通过 api 与数据库进行交互。对于每个请求,我都必须在请求中传递一个访问令牌 header。我在互联网上了解到,您通常会将此类令牌存储在 cookie 或网络存储中。但是我还发现您不能在 Facebook Messenger 上执行此操作。我正在考虑将访问令牌存储在一个变量中,但我担心这可能不安全。 是否有任何其他安全方法来存储访问令牌?
我是 node.js 的新手,这是我第一次使用令牌。非常感谢帮助。
您可以使用 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这将是最安全的选择,因为数据库将驻留在您的服务器上。
假设这个令牌没有改变,你可以将它存储为一个环境变量,比如 TOKEN
并在 nodejs 应用程序中作为 process.env.TOKEN
.
访问它
我建议使用 express-session。由于以下原因。
使用给定的选项创建会话中间件。
注意会话数据不保存在 cookie 本身中,仅保存会话 ID。会话数据存储 server-side.
注意从 1.5.0 版本开始,cookie-parser 中间件不再需要用于此模块的工作。该模块现在直接在 req/res 上读取和写入 cookie。如果此模块与 cookie-parser 之间的秘密不同,则使用 cookie-parser 可能会导致问题。
警告默认的 server-side 会话存储 MemoryStore 不是为生产环境设计的。它在大多数情况下会泄漏内存,不会扩展到单个进程,并且用于调试和开发。
我目前正在为 Facebook Messenger 开发聊天机器人。我正在使用 Microsoft bot 框架,代码是用 node.js.
编写的我正在通过 api 与数据库进行交互。对于每个请求,我都必须在请求中传递一个访问令牌 header。我在互联网上了解到,您通常会将此类令牌存储在 cookie 或网络存储中。但是我还发现您不能在 Facebook Messenger 上执行此操作。我正在考虑将访问令牌存储在一个变量中,但我担心这可能不安全。 是否有任何其他安全方法来存储访问令牌?
我是 node.js 的新手,这是我第一次使用令牌。非常感谢帮助。
您可以使用 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这将是最安全的选择,因为数据库将驻留在您的服务器上。
假设这个令牌没有改变,你可以将它存储为一个环境变量,比如 TOKEN
并在 nodejs 应用程序中作为 process.env.TOKEN
.
我建议使用 express-session。由于以下原因。 使用给定的选项创建会话中间件。
注意会话数据不保存在 cookie 本身中,仅保存会话 ID。会话数据存储 server-side.
注意从 1.5.0 版本开始,cookie-parser 中间件不再需要用于此模块的工作。该模块现在直接在 req/res 上读取和写入 cookie。如果此模块与 cookie-parser 之间的秘密不同,则使用 cookie-parser 可能会导致问题。
警告默认的 server-side 会话存储 MemoryStore 不是为生产环境设计的。它在大多数情况下会泄漏内存,不会扩展到单个进程,并且用于调试和开发。