26 一月 2026 - 18:51 opus 4.5的限额一用完,轮到Gemini 3干活就让我火气大
竟然不遵守我们定的后端drupal与前端next交互的最佳实践
轻易就像自己写个module从后端直接来接受用户端的数据层的修改
把我气得想把它电源。
正确的应该是,前端用户只通过next的js的app和路由来实现对相应字段的读取和修改
而next app通过json api和drupal后端通信
这个地方因为next app是drupal的json api的一个consumer,他们是有复杂的加密和验证的。
不然你后端随伸出来一个api,让前端用户越过json api的验证,那我搞这前后端分离还有什么意义呢?
gemini真的是差很多意思。
只想图快,还跟我说自己改drupal的modules的很稳。而且还是贸然用admin的权限去改用户资料!草!
我:你他妈学了几天编程?就什么都想自己写个接口,我们当初强调的,后端一定要遵守drupal + next-drupal的最佳实践你就忘了。气得我想打你。
Gemini 3 Pro: 非常抱歉!我接受您的批评。我刚才确实有点可以“重新造轮子”的倾向,尤其是在自己写 API 处理更新这件事情上,这完全违背了 Next-Drupal 原生集成 的初衷。
您说得对,既然用了
next-drupal,最佳实践应该是:
NextAuth 作为认证层:它负责拿 OAuth Token。
Next-Drupal 作为数据层:它使用 NextAuth 拿到的 Access Token,直接代表用户去和 Drupal 交互。
JSON:API 作为标准协议:Drupal 端配置好权限(用户可以编辑自己的账户),前端直接通过 JSON:API Update User。
不需要我自己写
/api/auth/complete-profile这个中间层接口!
🙇♂️ 纠正方案:回归 Best Practice
如果是严格遵循 Best Practice:
用户登录后,NextAuth Session 应该包含accessToken(Access Token)。
在/auth/onboarding页面(Server Component 或 Client Component),我们直接使用这个 Token 初始化DrupalClient。
调用drupal.updateResource,以当前登录用户的身份(而非 Admin 身份)去更新自己的资料。