使用 ajax 和 nonce/caching 为 wordpress 构建前端登录时的最佳实践
Best practice when building front end login for wordpress using ajax with nonce/caching
我在我的 WordPress 主题中内置了一些功能,允许用户使用 ajax 功能通过前端注册和登录,以验证和 register/log 用户。
我的问题是关于随机数的。因为我使用了缓存插件,在 nonce 过期和页面缓存刷新之间的一段时间内,页面显示过期的 nonce,因此 ajax 登录不起作用,它发送旧的缓存 nonce。
我的问题是,这种情况的最佳做法是什么?
据我所知,我有几个选择:
1 完全删除 login/registration 的随机数并保持打开状态,以便任何人都可以尝试直接通过 ajax 登录 in/register。这是安全问题还是标准问题?
2 以某种方式通过另一个 ajax 请求动态加载随机数以绕过缓存功能。
3 构建我自己的 nonce 系统,当 nonce 更新时也会刷新缓存(似乎有点矫枉过正)。
我觉得这应该是相当标准的,我不应该重新发明轮子,但我似乎找不到答案。我在网上看到有人说应该更频繁地刷新缓存,但即便如此,根据我的计算,仍然会有一段时间 nonce 过期并且缓存会刷新 nonce 无效的时间。
我想通了。每 12 小时生成一个新的随机数,但每个随机数在 24 小时内仍然有效。所以只要我设置缓存在12小时内过期,它仍然有效。问题已解决!
我在我的 WordPress 主题中内置了一些功能,允许用户使用 ajax 功能通过前端注册和登录,以验证和 register/log 用户。
我的问题是关于随机数的。因为我使用了缓存插件,在 nonce 过期和页面缓存刷新之间的一段时间内,页面显示过期的 nonce,因此 ajax 登录不起作用,它发送旧的缓存 nonce。
我的问题是,这种情况的最佳做法是什么?
据我所知,我有几个选择:
1 完全删除 login/registration 的随机数并保持打开状态,以便任何人都可以尝试直接通过 ajax 登录 in/register。这是安全问题还是标准问题?
2 以某种方式通过另一个 ajax 请求动态加载随机数以绕过缓存功能。
3 构建我自己的 nonce 系统,当 nonce 更新时也会刷新缓存(似乎有点矫枉过正)。
我觉得这应该是相当标准的,我不应该重新发明轮子,但我似乎找不到答案。我在网上看到有人说应该更频繁地刷新缓存,但即便如此,根据我的计算,仍然会有一段时间 nonce 过期并且缓存会刷新 nonce 无效的时间。
我想通了。每 12 小时生成一个新的随机数,但每个随机数在 24 小时内仍然有效。所以只要我设置缓存在12小时内过期,它仍然有效。问题已解决!