Yii2如果其他注册用户在该URL上,如何阻止访问URL?



我今天的目标是,如果其中一个用户打开了该URL,则使该URL对其他注册用户不可用,并在该用户离开该URL时使该URL可用。现在我只知道如何阻止它-使用缓存,但问题是解锁用户可以去任何地方,甚至只是关闭浏览器。我知道有选项设置缓存定时器,但在我的情况下,这不是一个选项-系统必须知道,如果有一些用户在该URL。有人能帮我提供一些如何实现这一点的想法吗?

我个人唯一能想到的是使用JWT或会话来检查登录用户是否在该页上,然后使用一个条件来检查当前用户是否等于试图进入该页的用户,如果不匹配,则将该用户重定向到其他地方。

export const blockAccess = expressAsyncHandler(async (req, res, next) => {
//check if the user is currently on the page
if (req.session.promoPage) {
//if they are, redirect new user's that're trying to access the page to the home page
if (req.session.promoPage.userId !== req.user.id) {
res.redirect('/')
}
}
next() //next here is a function that tells the program to move on to the next middleware function or route etc....
})

最新更新