在单体应用程序中处理令牌的正确方法是什么?

What would be a proper way to handle tokens in monolith application?

我有一个由 Laravel 提供支持的整体 Web 应用程序。用户访问不同的表单,其中一些表单上有执行 Ajax 调用后端的按钮(例如相对端点:api/external/get-current-temperature)。处理请求的后端函数,而不是通过 API 连接到外部服务并获取数据,在数据库中写入一些日志并将数据传递回请求者(前端用户)。但是为了执行任何 API 调用,它必须进行身份验证并获取令牌。

问题: 我有多个用户可能同时请求 api/external/get-current-temperature。我应该如何处理 authorization/token?我应该将它存储在数据库中并在请求新的之前检查它的过期时间还是什么?我将如何刷新它? - 外部提供没有可用于验证令牌的特定功能。但我确定令牌的有效期为 60 分钟。

您的应用程序的用户永远不必与您的外国用户混淆/误解 API。您可以而且应该提供自己的机制(即令牌)来验证任何用户。如果用户通过身份验证,则使用外部 API,否则您的应用程序可能会提供 error-message。

由于用户还填写了几种不同的表格,因此您很可能会节省一些 user-data。如果每个用户都有自己的身份验证凭据,那么只提供用户自己的数据会更容易也更安全。如果您在自己的应用程序中为每个用户使用相同的身份验证令牌,您可能会遇到一个用户可以看到另一个用户的数据的情况。

所以这样看:
您/您的应用程序是外部 API 的用户,因此您只需要一个身份验证令牌。您的应用程序用户使用外部 API 作为服务,您应该在您的应用程序中提供它。提供给服务的数据可能因用户而异。

支付应用示例:
API 始终相同,作为开发人员,您会获得一个 API 密钥,但应用程序的每个用户的付款方式不同。作为开发人员,您甚至可能永远无法查看、存储或跟踪外部服务与用户之间交换的 user-data,但您的应用程序充当枢纽,并且可能还提供一些在任何付款中都会考虑的产品或服务.