【发布时间】:2021-12-04 01:59:24
【问题描述】:
我正在寻找有关如何处理使用 Apollo 和 GraphQL 访问 PostgreSQL 数据库的 next.js 前端的建议。我认为将前端和后端分开是有意义的,但我意识到存在权衡。 Next.js 和 NextAuth.js 在使用 Next.js API 功能时似乎设计得很好。
几个要求:
- 需要根据用户(公共、内部、管理员)限制数据。
- 使用 Google OAuth 登录
考虑到这一点,如果您希望后端了解用户的访问权限,NextAuth.js 会变得更加复杂。
但是,如果我的 apollo/graphql 后端是独立的,那么肯定会有以下好处:
- 如果需要,我可以更换前端,因此具有一定的灵活性
- 代码和依赖项可能比组合的前端/后端更简单
我目前面临的挑战是 NextAuth.js 在 Next.js 应用程序中工作,但我还没有弄清楚如何控制数据访问。到目前为止,我得到的最好的想法是某种将 NextAuth.js 和我的后端混合在一起的令牌管理。这似乎不是 NextAuth.js 的设计方式,所以我正在重新考虑整个架构并寻找建议。
谢谢!
我在这里找到了对类似问题的非常简短的讨论,但我很想听听其他人会如何处理这个问题。 How to forward user sessions in Next.js + Graphql decoupled architecture?
【问题讨论】:
-
我将尝试添加一个答案,但您是在使用 Google OAuth 作为通用社交登录还是作为组织登录?我实际上不确定它是否会有所作为。
-
谢谢,@Ben。大多数用户将成为 google 组织的一部分,但不是全部,因此它必须足够灵活以支持两者。我正在查看您的完整帖子,并在探索这些想法后会回来。非常感谢!
标签: postgresql graphql next.js apollo next-auth