gpt4 book ai didi

php - 将中间件附加到特定的现有路由

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:43:30 27 4
gpt4 key购买 nike

有没有办法将中间件附加到 Wordpress 或 PHP 中的特定路由?我想在允许访问上传文件夹之前运行一个中间件函数,以检查用户是否有权访问该文件,然后再允许他们下载它。

我有 node.js/express 的背景,所以如果它有帮助我想做这样的事情:

app.use('/wp-content/uploads', function(req, res, next) {
// do stuff with req and call next to continue,
// or use res to end the request early.
});

最佳答案

有各种 WordPress 插件用于限制对内容或下载的访问,主要基于是否已注册以及用户拥有什么权限的逻辑。

它们背后的基本逻辑是这样的:

// Redirect guests
function guest_redirect() {
$guest_routes = array(
'member-login',
'member-account',
'member-register',
'member-password-lost',
'member-password-reset'
);
// Force login or registration
if ( !is_user_logged_in() && !is_page($guest_routes) ) {
wp_redirect( 'member-login' );
exit;
}
}
add_action( 'template_redirect', 'guest_redirect' );

另外,WordPress 有 REST API ( official doc here for your need )。但是,在没有经过适当测试的情况下,使用 REST API 为生产站点使用自己的自定义内容可能存在风险且使用起来很复杂。

关于php - 将中间件附加到特定的现有路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45377691/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com