WordPress 在内存中存储身份验证令牌

WordPress Store Authentication token in memory

我正在寻找有关 WordPress 插件开发的帮助。我的插件查询需要身份验证令牌的 API,该令牌是通过令牌交付 APi 获取的。令牌每 3600 秒过期一次。

我想以持久的方式存储令牌(对于所有会话,如服务器端缓存)并仅在需要时更新它。多个 Api 调用可以使用相同的令牌完成。问题是,如果我将令牌存储在全局变量中,每次用户重新加载使用我的插件的页面时,它都会被重置。 https://wordpress.stackexchange.com/questions/89263/how-to-set-and-use-global-variables-or-why-not-to-use-them-at-all

寻找答案后我发现:

-WP_CACHE ,但不是持久的。

-我知道我可以将令牌存储在数据库中,但是数据库中的令牌不是我发现优雅的用例

-PHP 的 Redis 对象缓存等工具,但我发现它真的很复杂,安装等...

有什么好的做法或简单的方法吗?我只需要保留一个字符串一个小时并在 PHP.

中的插件中访问它

谢谢。

https://wordpress.stackexchange.com/questions/89263/how-to-set-and-use-global-variables-or-why-not-to-use-them-at-all

在这种情况下,我会使用 WordPress 瞬变:

https://developer.wordpress.org/reference/functions/set_transient/ https://developer.wordpress.org/reference/functions/get_transient/

要设置瞬态,您可以使用此代码:

$transient  = 'your_token_name';
$value      = 'your_token'
$expiration = 3600

set_transient( $transient, $value, $expiration );

要再次接收瞬态值,您可以使用:

$token = get_transient( $transient );

使用这些方法比 update_optionget_option 更好,因为 WordPress 完全管理瞬变的过期(删除),因此您不必为此实现自己的逻辑。

在将值传递给瞬态方法之前,您可以通过在 wp-config.php 中存储一个 salt/key 来对其进行加密和解密。您可以在此处找到有关此主题的更多信息:

http://php.net/manual/es/function.openssl-encrypt.php http://php.net/manual/es/function.openssl-decrypt.php

要在 WordPress 中定义常量,您需要转到 wp-config.php 文件并将其添加到“您可以编辑”字样之间:

define( 'YOUR_SALT', '12345678' );

您可以在 WordPress 中将其作为普通常量再次阅读:

$salt = YOUR_SALT;