【问题标题】:Storing file (pdf) so only authenticated user can access them (with nextjs)存储文件(pdf),因此只有经过身份验证的用户才能访问它们(使用 nextjs)
【发布时间】:2021-02-17 01:06:35
【问题描述】:
我正在尝试建立一个包含一些私人页面的网站。我的目标是用户可以选择从那里下载 PDF,但前提是他们已经过身份验证。现在我的问题是,我应该在哪里存储 PDF 文件,以便它只能由经过身份验证的用户访问,以及我应该如何服务/访问它们。如果可能的话,所有这些都使用 nextjs(我使用 next-auth 进行身份验证)。
这是一个非常笼统的问题,我不需要具体的答案,但是我应该遵循的一般方式或我应该研究的事情会很棒。
我对网络开发有点陌生,如果问题很愚蠢,请见谅。
【问题讨论】:
标签:
node.js
file
pdf
next.js
private
【解决方案1】:
身份验证
我认为你可以结合 JavaScript 和 CSS 的力量来实现这一点。
使用所需框架对用户进行身份验证后,然后在将显示登录或注册的组件内部导航,并将反应钩子状态设置为:
const [isAuthenticated, setIsAuthenticated] = useState(false);
现在必须保存身份验证框架生成的令牌。使用 if else 控制来加入它们:
const user = Auth.user({email:abc@gmail.com})
let message
if (user){
setIsAuthenticated(true);
Message = <h3>Welcome {user.username}</h3>
}else {
router.push('/')
}
.
.
.
return(
<div className={isAuthenticated ? 'display': ''}>
<button><a href="URL link">download link</a></button>
</div>
)
在全局 CSS 文件中,
添加以下行
.display {
display:none;
}
应该这样做。
它只会向经过身份验证的用户显示 Dom。
?