【问题标题】: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。 ?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-17
      • 2018-09-09
      • 2019-01-25
      • 2019-01-03
      • 1970-01-01
      • 1970-01-01
      • 2012-12-24
      • 2016-01-15
      相关资源
      最近更新 更多