我正在使用Express js。在根文件夹中,我有一个public
文件夹,其中包含子文件夹stylesheets
,javascripts
,fonts
,images
和html
。如果用户未登录,我想保护我的资产。例如,如果有人打开网络浏览器并且没有登录请求http://localhost:3000/images/hello.jpg
,那么请求应该被重定向到登录页面。如何关闭app.use(express.static('/ public')); Express js
为了达到此目的,我有条件地使用express.static(path.join(__dirname, '/public'))
。
挑战1
登录页面还具有一些4-5资产(CSS和JS文件),其被放置在相同的公共文件夹。
挑战2
我使用此代码express.static(path.join(__dirname, '/public'))
这样的:
if(userIsLoggedIn){
express.static(path.join(__dirname, '/public'))
}else{
//what to do here???
//I need a code here which makes public folder as non-static folder
}
例如,我们有两个用户A和B的用户使用不同的计算机。用户A正在成功登录,并且在服务器上,我们将public
文件夹设置为static
,但用户B尚未登录,他现在直接访问资产并且他可以访问。
发生这种情况是因为我们没有将用户基础上的公用文件夹设置为静态,因此如果有任何用户成功登录,我们会将其设置为静态。
添加中间件以检查所有受保护资产之前的身份验证。 – krrish