首页 > 解决方案 > 如何在多个环境(开发、阶段、生产)上保持身份验证令牌同步(php)

问题描述

我正在用 PHP(LAMP 堆栈)开发一个应用程序,它包括与外部 API 的一些通信。我正在使用 Oauth2 使用“刷新令牌”进行身份验证(这是我被迫使用它的方式,因为其他方法需要手动登录,在这种情况下我们想要绕过)。

无论如何,我将刷新令牌存储到 MySQL 数据库中,然后在需要时读取它,使用它并设置一个新令牌(如果它已过期)。

问题是令牌变得不同步。因此,如果我在开发环境中做某事,如果令牌得到更新并且我只在开发数据库上同步它(仅)。由于生产和阶段刷新令牌以这种方式变得过时,这些环境上的请求开始失败。我猜这有 3 种方式(因此生产可以将刷新令牌更新到 API,并且由于本地和阶段不会更新它,因此请求将在那里开始失败)。

有没有更好的方法来实现这种“用于开发、阶段和生产的单一令牌”类型的功能?或者这是一种常见的做法,有没有办法实现某种“刷新服务”来更新所有 3 个数据库?

感谢您的任何建议!祝你今天过得愉快 :)

标签: phpauthenticationoauth-2.0refresh-token

解决方案


推荐阅读