php - WordPress 在内存中存储身份验证 token

标签 php wordpress caching woocommerce server

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

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

在寻找答案后我发现:

-WP_CACHE ,但它不是持久的。

-我知道我可以将 token 存储在数据库中,但是数据库中的 token 不是我觉得优雅的用例

-Redis Object Cache for PHP 之类的工具,但我发现它真的很复杂,安装等...

有没有什么好的做法或简单的方法可以做到这一点?我只需要将一个字符串保留一个小时并在 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 ,您可以使用此代码:

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

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

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

$token = get_transient( $transient );

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

在将值传递给 transient 方法之前,您可以通过在 wp-config.php 中存储盐/ 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;

关于php - WordPress 在内存中存储身份验证 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67980779/

相关文章:

mysql - 获取meta_key等于的类别中的帖子数量?

node.js - 使用 Sequelize 和 Node 延迟加载静态数据

php - 在 RegEx 中,如何找到包含不超过 3 个唯一字符的行?

php - 如何使用javascript刷新表格单元格

php - 类PHP中的奇怪错误对象

php - 菜单项在不应该处于事件状态时处于事件状态

php - WooCommerce - 添加到购物车没有变体 ID

css - 我想要 wordpress 中菜单的颜色

django - 如何在特定时间(例如午夜)清除 Django 模板缓存?

java - Multi-Tenancy 方法的 Apache Ignite 性能