小编Onu*_*der的帖子

Next.js 身份验证策略

我一直在尝试为 Next.js 项目实现可靠的身份验证流程,但现在我完全迷失了。我已经看过 Next.js 的示例存储库。但是我对完整的解决方案有很多疑问。

我有一个 express.js API 和一个单独的 Next.js 前端项目。所有数据和身份验证都由 API 处理。前端只是使用 SSR 呈现页面。如果我只是创建一个整体项目,其中呈现页面和所有数据由单个服务器处理(我的意思是 Next.js 的自定义服务器选项),我将只使用 express-session 和 csurf。这将是管理会话和创建针对 CSRF 的安全性的传统方式。

Express.js API 不是必需的。这只是一个例子。它可以是 Django API,也可以是 .Net Core API。重点是,它是一个单独的服务器和一个单独的项目。

我怎样才能拥有一个简单而可靠的结构?我检查了一些我最喜欢的网站(netlify、zeit.co、heroku、spectrum.chat 等)。其中一些使用 localstorage 来存储访问和刷新令牌(易受 XSS 攻击)。其中一些使用 cookie,它们甚至不是 HTTPOnly(XSS 和 CSRF 都容易受到攻击)。像spectrum.chat 这样的例子使用了我上面提到的方式(cookie-session + 防止csrf)。

我知道围绕 JWT 代币有巨大的炒作。但我觉得它们太复杂了。大多数教程只是跳过所有过期、令牌刷新、令牌撤销、黑名单、白名单等。

并且 Next.js 的许多会话 cookie 示例几乎从未提及 CSRF。老实说,身份验证对我来说一直是个大问题。有一天我读到应该使用 HTTPOnly cookie,第二天我看到一个巨大的流行网站甚至没有使用它们。或者他们说“永远不要将你的代币存储到 localStorage”,而一些大型项目就使用这种方法。

任何人都可以向我指出这种情况的方向吗?

authentication session csrf reactjs next.js

20
推荐指数
3
解决办法
8680
查看次数

使用分页时如何提高嵌套 graphql 连接的性能

我正在尝试实施某种基本的社交网络项目。它有PostsComments并且Likes像其他任何一样。

  • 一个帖子可以有很多评论
  • 一个帖子可以有很多人点赞
  • 一篇文章可以有一个作者

/posts在客户端应用程序上有一条路线。它按分页列出Posts并显示它们的titleimageauthorName和。commentCountlikesCount

查询graphql是这样的;

query {
  posts(first: 10, after: "123456") {
    totalCount
    edges {
      node {
        id
        title
        imageUrl
        author {
          id
          username
        }
        comments {
          totalCount
        }
        likes {
          totalCount
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用apollo-serverTypeORMPostgreSQLdataloader我用来dataloader获取author每个帖子。authorIds我只是用批处理请求dataloaderauthorsPostgreSQL查询中获取where …

postgresql apollo graphql typeorm dataloader

5
推荐指数
1
解决办法
2146
查看次数